Как написать запрос критерия гибернации для двух разных таблиц - PullRequest
1 голос
/ 29 мая 2011

У меня есть эти два класса

@ Table (name = "candidinfo")

Класс CandidateInfo {

.... @OneToMany

CandidateResume кандидата;....

}

@ Table (name = "кандидатResume")

Класс CandidateResume {....

@ ManyToOne

Кандидаты в кандидаты;

.......

}

Теперь я хочу добавить два ограничения в 2 разных класса (как указано выше) в приведенных ниже критериях

для этого у меня есть

Критерии крит = session.createCriteria (CandidateResumeInfo.class);

crit.add (Restrictions.eq ("resumeSearchable", 1)) ; // resumeSearchable находится в CandidateResume

crit.createCriteria ("кандидат")

.add (Restrictions.eq ("идентификатор пользователя", 1)); // идентификатор пользователя находится в классе CandidateInfo

Список rsList = crit.list (); // В этой строке он переходит к исключению и не выдает никакой ошибки

for (Iterator it = rsList.iterator (); it.hasNext ();)

1 Ответ

0 голосов
/ 29 мая 2011

Не могли бы вы объяснить, что именно вы пытаетесь найти, но если я вас правильно понимаю, вы хотите найти все результаты, где Canditate ID = 1 и кандидат возобновить.доступный для поиска = 1;

Затем вам нужно сделать что-то вроде следующего запроса:

String query= "from Candidate c join c.candidate resume where c.userid = :userid and resume.resumeSearchable =: searchable";   
Query q = session.createQuery(query);
q.addInteger("userid",1);
q.addInteger("searchable",1);
List<Candidate> = q.list();
...