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

时间:2019-01-09 15:40:17

标签: java spring hibernate jpa hql

我有以下问题:我正在使用Spring + Hibernate,并且当前正在尝试选择一个ID +其ID的数量,并返回包含每个ID及其对应数量的列表。现在的问题是,当我遇到以下异常时,转换器显然出现了问题:

  

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

E_Amount创建具有ID和数量的对象。和我的查询:

 @Query("select t.e.id, count(t.id) from...")

返回整数和整数的完美结果,例如{9,101}

我只是不太完全确定如何开始解决此转换问题。任何想法将不胜感激!

1 个答案:

答案 0 :(得分:1)

尝试结果类策略:

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语句中的列顺序相同。