Java 在Hibernate中将对象从查询转换为其他类?
我有以下问题:我正在使用Spring+Hibernate,当前正在尝试选择一个id+其id的数量,并返回一个包含每个id及其相应数量的列表。现在的问题是,转换器似乎有问题,因为我得到以下异常: ConverterNotFoundException:未找到能够转换的转换器 从类型[java.lang.Long]到类型[…entity.E_Amount]]和root 原因 E_Amount创建具有id和金额的对象。我的问题是:Java 在Hibernate中将对象从查询转换为其他类?,java,spring,hibernate,jpa,hql,Java,Spring,Hibernate,Jpa,Hql,我有以下问题:我正在使用Spring+Hibernate,当前正在尝试选择一个id+其id的数量,并返回一个包含每个id及其相应数量的列表。现在的问题是,转换器似乎有问题,因为我得到以下异常: ConverterNotFoundException:未找到能够转换的转换器 从类型[java.lang.Long]到类型[…entity.E_Amount]]和root 原因 E_Amount创建具有id和金额的对象。我的问题是: @Query("select t.e.id, count(t.id)
@Query("select t.e.id, count(t.id) from...")
返回一个很好的长整数结果,例如{9101}
我只是不完全确定如何着手解决这个转换问题。任何想法都将不胜感激 尝试结果类策略: 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(..);
@Query(“从…”中选择新的com.mypackage.ResultClass(t.e.id,count(t.id)))
公共列表查询(…);
只需确保构造函数参数的顺序与select语句中的列相同。基本上与我的例子相同吗?我用select new com.*.E_Amount(…)尝试了它,现在我收到了一个IllegalArgumentException。好吧,我现在的问题是,我实际上有一个spring/hibernate builder类用于该对象,因此我想,我不能有一个标准构造函数?我对spring+hibernate还不熟悉,所以这让我有点困惑。无论如何,我的服务器给了我详细的SemanticException,因为它找不到类E_Amount上的适当构造函数。。。