具有多个条件的HQL查询会产生错误的结果

时间:2014-04-30 10:23:10

标签: java hibernate jpa

我有两个实体,与OneToMany关系:

class Parent {
   int parentId;
   Set<Children> children;
}

class Child {
    int childId;
}

以及以下HQL查询:

"SELECT p.children FROM Parent p left join p.children as c WHERE p.id=:pid AND c.id:=cid"

返回给我父亲的所有孩子给定id,而我期望只有一个id匹配给定孩子id的孩子。我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要使用内部联接而不是左联接。

尝试以下任一方法,不确定确切的语法。

SELECT p.children FROM Parent p inner join p.children as c WHERE p.id=:pid AND c.id:=cid

SELECT p.children FROM Parent p, p.children as c WHERE p.id=:pid AND c.id:=cid