Jpa JPQL查询的返回类型
我实际上需要使用JPQL查询数据库。我找不到任何方法返回对象列表。在下面的链接中,可以返回Jpa JPQL查询的返回类型,jpa,jpql,Jpa,Jpql,我实际上需要使用JPQL查询数据库。我找不到任何方法返回对象列表。在下面的链接中,可以返回Object[]的列表,但我不知道如何使其适合我需要返回的类型,即列表对象的列表。感谢您的帮助。要从查询中创建对象,首先必须为要获取的字段创建一个类,例如: package com.my.package; public class MyObject { private String fieldOne; private String fieldTwo; public MyObje
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();
谢谢你们,你们给了我一种更通用的方法来根据查询返回的内容构造对象,我需要这样做“从MyTable t中选择新列表(t.fieldOne,t.fieldTwo)”
EntityManager entityManager = ...;
entityManager
.createQuery("SELECT new com.my.package.MyObject(t.fieldOne, t.fieldTwo) FROM MyTable t", MyObject.class)
.getResultList();