0

假设我有一个 MySQL 表,并且实体tag处于休眠状态,其中 atag是下面的一行

id (primary key), tag,    entity id
1,                food,   77
2,                shop,   98
3,                food,   32
...

我想返回按条目数递减排序的同一标签的总数。阿卡,

tag,     count
food,    2
shop,    1
...

我被告知要做类似的事情

SELECT tag, COUNT(*) `count`
  FROM table1
 GROUP BY tag
 ORDER BY `count` DESC

输出:

| 标签 | 计数 |
|--------|--------|
| 食品| 2 |
| 店铺 | 1 |

但是,如何从 Hibernate 中读取这个新创建的实体列表?我是否需要以某种方式定义一个新对象来读取此列表?

同样的问题也适用于读取一个已定义的实体(行),但只是作为查询的一部分与另一个实体连接。如何读出结果?

谢谢!

4

1 回答 1

0

询问:

String query = "SELECT tag, COUNT(*) as count "+
                "FROM table1 " +
                "GROUP BY tag " +
                "ORDER BY count DESC";

附加课程

public class Result  
{  
   private String tag;
   private int count;
   // getters/ setters
}

创建本机查询

  final Query nativeQuery = entityManager.createNativeQuery(query);
  final SQLQuery sqlQuery = (SQLQuery) ((HibernateQuery) nativeQuery ).getHibernateQuery(); 
  sqlQuery.addScalar("tag");
  sqlQuery.addScalar("count");
  sqlQuery.setResultTransformer(Transformers.aliasToBean(Result.class));
于 2013-09-18T19:30:22.923 回答