Hibernate 如何将标准限制为fk';她在另一张桌子上吗?
我有一张表,Hibernate 如何将标准限制为fk';她在另一张桌子上吗?,hibernate,hibernate-criteria,Hibernate,Hibernate Criteria,我有一张表,car,每辆车都有一个id,它可能出现在选项(选项包括除霜器、电动车窗等)的FK\u car\u id列中。因此汽车与选项之间存在0对多关系 我需要配备选件的汽车 SQL如下所示: SELECT c.* from car c LEFT JOIN options o on c.id = o.FK_car_id GROUP BY c.id; 在hibernate中如何执行此操作?以下是我尝试过的: var c = newCriteria().readOnly(); c.cre
car
,每辆车都有一个id
,它可能出现在选项
(选项包括除霜器、电动车窗等)的FK\u car\u id
列中。因此汽车
与选项
之间存在0对多关系
我需要配备选件的汽车
SQL如下所示:
SELECT c.* from car c
LEFT JOIN options o on c.id = o.FK_car_id
GROUP BY c.id;
在hibernate中如何执行此操作?以下是我尝试过的:
var c = newCriteria().readOnly();
c.createAlias('car','car');
c.sqlRestriction('SELECT c.* from car c LEFT JOIN options o on c.id = o.FK_car_id GROUP BY c.id');
c.return c.list(asQuery = false);
但我得到“无法提取结果集”
注意:这是我的代码的简化表示,以突出主要问题并生成一个最小的示例。使用以下方法:
c.createCriteria(Car.class, "car")
.createAlias("car.options", "options", JoinType.LEFT_OUTER_JOIN)
.setProjection(Projections.groupProperty("car.id"));