我想写一个 Hibenate 请求,我的 Sql 请求是这样的:
按城市从用户组中选择city,count(*);
谢谢 !
使用代码片段
session.createSQLQuery("Select city , count(*) from user group by city");
Hibernate 可用于在查询中编写原始 SQL 代码。
编辑:
正如建议的那样,hibernate 也有它自己的查询语言 HQL,它允许创建Query
. 它使用更加用户友好的界面来查询对象而不是表。在您的情况下,查询将重写为
session.createQuery("Select user.city, count(*) from User as user group by user.city");
差别不大,但使用对象用户而不是表及其属性。
使用标准 API,可以使用中的投影来实现相同的效果
session.createCriteria(User.class)
.setProjection(Projections.projectionList()
.add(Projections.rowCount())
.add(Projections.groupProperty("city"))
);