Java 如何返回已加入的hibernate实体列表?
假设我有一个MySQL表,在hibernate中有实体Java 如何返回已加入的hibernate实体列表?,java,mysql,hibernate,Java,Mysql,Hibernate,假设我有一个MySQL表,在hibernate中有实体标记,其中标记是下面的一行 id (primary key), tag, entity id 1, food, 77 2, shop, 98 3, food, 32 ... 我想返回按条目数递减排序的同一标记的总计数。又名 tag, count food, 2 shop, 1 ... 我被告知要做类似的事情 SE
标记
,其中标记是下面的一行
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
输出:
| TAG | COUNT |
|------|-------|
| food | 2 |
| shop | 1 |
|标记|计数|
|------|-------|
|食物| 2|
|商店| 1|
但是,如何从Hibernate中读取这个新创建的实体列表?我是否需要以某种方式定义一个新对象来读取此列表
同样的问题也适用于读取已定义的实体(行),但只是作为查询的一部分与另一个实体连接。我如何读出结果
谢谢 查询:
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));
可能重复的