0

我写的

List<Candidate> candidates = (List<Candidate>)session.createQuery("from Candidate as candidate  left outer join candidate.skills as skill    where skill.id ="+ 1).list();

我得到对象列表,其中包括候选对象和技能对象

我怎样才能只获得候选人名单?在此处输入图像描述

4

3 回答 3

1

我目前不记得这是否有效from Candidate as candidate where candidate.skills.skill.id = ?

如果没有,您可能可以使用:

select distinct candidate from Candidate as candidate left outer join candidate.skills as skill where skill.id = ?

于 2013-08-09T15:59:04.607 回答
0

这是你需要的吗?

for (Candidate candidate:candidates) {
    if(candidate instanceOf Candidate) {
        System.out.println("This is candidate obj : " + candidate.toString());
    }

}
于 2013-08-09T15:18:41.977 回答
0

我认为您只想要一个“加入”,而不是“左外部加入”。

正如维基百科所说,“表 A 和 B 的左外连接(或简称左连接)的结果始终包含“左”表 (A) 的所有记录,即使连接条件在“右”表(B)。特别是外连接会从技能表中提取数据,这听起来像是您不想要的。

于 2013-08-09T15:22:24.243 回答