Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Hibernate中将对象从查询转换为其他类?_Java_Spring_Hibernate_Jpa_Hql - Fatal编程技术网

Java 在Hibernate中将对象从查询转换为其他类?

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)

我有以下问题:我正在使用Spring+Hibernate,当前正在尝试选择一个id+其id的数量,并返回一个包含每个id及其相应数量的列表。现在的问题是,转换器似乎有问题,因为我得到以下异常:

ConverterNotFoundException:未找到能够转换的转换器 从类型[java.lang.Long]到类型[…entity.E_Amount]]和root 原因

E_Amount创建具有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上的适当构造函数。。。