如何为两个不同的表编写hibernate条件查询

时间:2011-05-29 03:18:49

标签: hibernate join criteria

我有这两个类

@Table(名称= “candidateinfo”)

Class CandidateInfo {

.... @OneToMany

CandidateResume候选人; ....

}

@Table(名称= “candidateResume”)

Class CandidateResume { ....

@ManyToOne

CandidateInfo候选人;

.......

}

现在我想在以下标准

中添加两个不同类别(如上所述)中的两个限制

为此我有

标准暴击= session.createCriteria(CandidateResumeInfo.class);

crit.add(Restrictions.eq(“resumeSearchable”,1)); // resumeSearchable在CandidateResume中

crit.createCriteria( “候选”)

.add(Restrictions.eq(“userid”,1)); // userid在CandidateInfo类中

列出rsList = crit.list(); //在此行,它会转到异常并且不会出现任何错误

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

1 个答案:

答案 0 :(得分:0)

你能否解释一下你究竟想要搜索什么,但如果我理解你正确你想搜索所有结果,其中canditate id = 1和candidateresume。 searchable = 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();