我实际上需要使用 JPQL 查询数据库。我找不到任何方法来返回对象列表的列表。在以下链接http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html#queryhql-select可以返回 Object[]
列表,但我不知道如何使其适合我需要返回的类型,即列表对象列表。感谢您的帮助。
最佳答案
要首先从查询创建对象,您必须为要获取的字段创建一个类,例如:
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();
关于jpa - JPQL 查询的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37046240/