Я следующая схема:Критерии с присоединением прекрасны ... но если я хочу добавить условие?
TABLE EMPLOYEE TABLE COUNTRY
--------------- ---------------
id |------> id
name | country_name
country_id ------| country_code
Если я хочу, чтобы получить список всех сотрудников, принадлежащих стране, я использую критерии, как это:
Criteria crit = getSession().createCriteria(Employee.class);
crit.add(Restrictions.eq("country.id", countryId));
List<Employee> employees = crit.list();
Мой сотрудник объект относится к стране в этом путь:
@Entity
public class Employee {
private static final long serialVersionUID = 1L;
@Id
private Integer id;
@ManyToOne
@JoinColumn(name="country_id")
private Country country;
// Other stuff here
}
Все здесь прекрасно работает!
Проблема в том, что я не знаю countryId, но вместо этого у меня есть country_code (например, «UK»). Как изменить приведенные выше критерии, чтобы я мог присоединиться к таблицам и добавить ограничение на код страны?
Вы можете использовать, если еще от значений (то есть, если пробел) и включают в себя crit.add (Restrictions.eq ("country.id", countryId)) внутри блока, в зависимости от результата условия. – Davos555