-5

我想写一个 Hibenate 请求,我的 Sql 请求是这样的:

按城市从用户组中选择city,count(*);

谢谢 !

4

1 回答 1

2

使用代码片段

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"))
  ); 
于 2013-10-24T19:11:13.643 回答