0

我在将以下 HQL 查询转换为 Criteria API 时遇到问题,我想知道是否可以从你们那里得到一些帮助


SELECT child FROM Foo AS child 
WHERE child IN (SELECT elements(obj.foos) FROM Bar AS obj WHERE obj.id = ?)

换句话说,我想在 id 等于 ? 的 Bar 实例中获取 Bar 引用的所有 Foos。

编辑:请注意,我在实体之间没有双向关系,因此 Foo 不知道哪些 Bars 引用了它。其次,从 Bar 到 Foo 的引用是 ManyToMany 类型。

4

2 回答 2

0

这些示例不等于您的示例,但它们相似:

休眠条件子查询

属性不在的休眠条件(子查询)

您可以将它们用作示例。

于 2014-05-08T04:44:36.907 回答
-2

就像是:

List<Foo> foos = session.createCriteria(Foo.class).createAlias("bar", "bar").add(Restrictions.eq("bar.id", 12345)).list();

对应:

class Foo {
   Bar bar;
}

class Bar {
   long id;
}
于 2010-01-26T17:07:54.493 回答