将本机SQL查询转换为休眠条件

时间:2020-06-02 16:59:12

标签: java sql hibernate

我需要转换此查询:

select * FROM table_a a
INNER JOIN (SELECT column1, column2, column3, count(*) FROM table_a a2 group by column1, column2, column3 having count(*) > 1) sub
ON aa.column1 = sub.column1 and a.column2 = sub.column2 and a.column3 = sub.column3 WHERE a.column4 = XXXX;

休眠标准。 像这样的东西:

criteria.setProjection(
                Projections.projectionList()
                        .add(Projections.groupProperty(Entity.Attributs.column1.name()))
                        .add(Projections.groupProperty(Entity.Attributs.column2.name().concat(".").concat(ManyToOneEntity.Attributs.propName.name()))));

我的问题是我一直在阅读您不能将having子句与休眠条件一起使用。

有什么解决方法吗?我真的需要使用休眠条件。

编辑:

我发现了一种可能可以用“休眠标准”编写的新方法:

select a.* FROM table_a a, (SELECT column1, column2, column3, count(*) as counter FROM table_a a2 group by column1, column2, column3) sub
WHERE a.column1 = sub.column1 and a.column2 = sub.column2 and a.column3 = sub.column3 and counter > 1 and a.column4 = XXXX;

但是,我还是做不到。帮助吗?

0 个答案:

没有答案