从hql结果中选择一个单独的对象

时间:2013-08-09 15:15:56

标签: java hibernate hql

我写

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

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

我如何只获得候选人名单?enter image description here

3 个答案:

答案 0 :(得分: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 = ?

答案 1 :(得分:0)

这是你需要的吗?

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

}

答案 2 :(得分:0)

我认为你只想要一个“加入”,而不是“左外连接”。

正如Wikipedia所说,“表A和B的左外连接(或简称左连接)的结果总是包含”左“表(A)的所有记录,即使连接条件也是如此在“右”表(B)中找不到任何匹配的记录。“特别是外连接将从技能表中提取数据,这听起来像你不想要的。