ins*_*ect 10 java mysql hibernate group-by hibernate-criteria
我想使用"group by"编写条件查询,并希望返回所有列.
Plane sql是这样的:
select * from Tab group by client_name order by creation_time;
Run Code Online (Sandbox Code Playgroud)
我知道它会有count(distinct client_name)
多少行.
我当前的查询似乎没有给出正确的结果如下:
Criteria criteria = getSession(requestType).createCriteria(Tab.class);
criteria.setProjection(Projections.projectionList().add(Projections.groupProperty("client_name")));
criteria.addOrder(Order.asc("creationTime"));
Run Code Online (Sandbox Code Playgroud)
此查询"client_name"
仅返回.我不想手动输入所有列名.必须有某种方式,可以做些什么?
我认为你误解了一些东西。如果您GROUP BY
使用 SQL,那么您需要按所有选定的列进行分组。这同样适用于 Hibernate - 如果您groupProperty
在 a 中Projection
,则告诉 Hibernate 该列是组列。如果没有引用其他列/字段,Hibernate 将假设您不需要它们,因为它们也需要分组。
退一步来说:你想做什么?如果表中的所有列都有重复数据,则可能存在错误数据,或者错误地保留了数据。至少,你的钥匙会弄乱。
归档时间: |
|
查看次数: |
7811 次 |
最近记录: |