Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Jpa JPQL查询的返回类型_Jpa_Jpql - Fatal编程技术网

Jpa JPQL查询的返回类型

Jpa JPQL查询的返回类型,jpa,jpql,Jpa,Jpql,我实际上需要使用JPQL查询数据库。我找不到任何方法返回对象列表。在下面的链接中,可以返回Object[]的列表,但我不知道如何使其适合我需要返回的类型,即列表对象的列表。感谢您的帮助。要从查询中创建对象,首先必须为要获取的字段创建一个类,例如: package com.my.package; public class MyObject { private String fieldOne; private String fieldTwo; public MyObje

我实际上需要使用JPQL查询数据库。我找不到任何方法返回对象列表。在下面的链接中,可以返回
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();