gpt4 book ai didi

java - 如何返回已加入的 hibernate 实体的列表?

转载 作者:行者123 更新时间:2023-11-30 01:17:49 24 4
gpt4 key购买 nike

假设我有一个 MySQL 表,以及 hibernate 中的实体 tag,其中 tag 是下面的一行

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 |

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

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

谢谢!

最佳答案

查询:

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

附加类(class)

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

创建 native 查询

  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));

关于java - 如何返回已加入的 hibernate 实体的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18880588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com