我实际上需要使用JPQL查询数据库。我找不到任何方法返回对象列表列表。在以下链接http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html#queryhql-select中,可以返回Object[]
的List,但是我没有看到如何使它适合我需要返回的类型,它是列表对象列表。谢谢你的帮助。
答案 0 :(得分:0)
要首先从查询创建对象,您必须为要获取的字段创建一个类,例如:
package com.my.package;
public class MyObject {
private String fieldOne;
private String fieldTwo;
public MyObject(String fieldOne, String fieldTwo) {
this.fieldOne = fieldOne;
this.fieldTwo = fieldTwo;
}
// Other methods...
}
然后,您对这些特定字段的jpql
查询将如下所示:
SELECT new com.my.package.MyObject(t.fieldOne, t.fieldTwo) FROM MyTable t
您可以使用@Query
注释在您的存储库中使用它,如下所示:
@Query("SELECT new com.my.package.MyObject(t.fieldOne, t.fieldTwo) FROM MyTable t")
List<MyObject> findMyObjects();
或使用EntityManager
:
EntityManager entityManager = ...;
entityManager
.createQuery("SELECT new com.my.package.MyObject(t.fieldOne, t.fieldTwo) FROM MyTable t", MyObject.class)
.getResultList();