java - 在 Hibernate 中将对象从查询转换为其他类?
问题描述
我有以下问题:我正在使用 Spring + Hibernate,目前正在尝试选择一个 id + 其 id 的数量并返回一个包含每个 id 及其相应数量的列表。现在的问题是,显然转换器有问题,因为我得到以下异常:
ConverterNotFoundException:找不到能够从类型 [java.lang.Long] 转换为类型 [...entity.E_Amount]] 的转换器,根本原因
E_Amount 创建带有 id 和数量的对象。我的查询:
@Query("select t.e.id, count(t.id) from...")
返回 long 和整数的完美结果,例如 {9,101}
我根本不完全确定如何开始解决这个转换问题。任何想法将不胜感激!
解决方案
尝试结果类策略:
1)使用构造函数创建一个新类 ResultClass 接受您的查询结果:
public class ResultClass{
public ResultClass(Integer id, Long count){..}
}
2)稍微修改查询:
@Query("select new com.mypackage.ResultClass(t.e.id, count(t.id)) from...")
public List<ResultClass> query(..);
只需确保构造函数参数与 select 语句中的列的顺序相同。
推荐阅读
- python - 如何在函数内初始化并行独立进程?
- javascript - React useEffect 无限循环
- regex - Lucene 正则表达式 v4
- c# - Web 程序集未编译并出现链接器错误 [Uno 平台]
- angular - 使用秋田状态库向嵌套数组添加对象 - Angular 9
- python - Django Celery 如何每 5 秒运行一次函数?
- c# - 如何使用 JWT 令牌 ASP.NET MVC
- python - 如何使用 fnmatch 检查字符串特定位置的模式?
- python - 基于值,显示通过或失败
- tcp - 在什么情况下,应用程序可能会收到乱序的 TCP 数据包?