Hibernate子查询

我在使用Hibernate创建子查询时遇到问题。不幸的是Subqueries类几乎是完全没有文档的,因此我绝对不知道如何将以下SQL转换为Hibernate

Criteria:

SELECT id

FROM car_parts

WHERE car_id IN ( SELECT id FROM cars WHERE owner_id = 123 )

我希望以下内容能够“正常工作”:

session.createCriteria(CarParts.class).add(eq("car.owner", myCarOwner));

但不幸的是,事实并非如此。因此,看来我实际上必须使用Subqueries类来创建Criteria。但是我无法通过Google找到一个合理的例子,因此我不得不在这里提出要求。

回答:

在添加eq表达式之前,尝试为“ car”属性创建别名:

session.createCriteria(CarParts.class)  

.createAlias("car", "c")

.add(eq("c.owner", myCarOwner));

以上是 Hibernate子查询 的全部内容, 来源链接: utcz.com/qa/403865.html

回到顶部