相关疑难解决方法(0)

JPA:如何将本机查询结果集转换为POJO类集合

我在我的项目中使用JPA.

我来到一个查询,我需要在五个表上进行连接操作.所以我创建了一个返回五个字段的本机查询.

现在我想将结果对象转换为包含相同五个字符串的java POJO类.

在JPA中是否有任何方法可以直接将该结果转换为POJO对象列表?

我来到以下解决方案..

@NamedNativeQueries({  
    @NamedNativeQuery(  
        name = "nativeSQL",  
        query = "SELECT * FROM Actors",  
        resultClass = db.Actor.class),  
    @NamedNativeQuery(  
        name = "nativeSQL2",  
        query = "SELECT COUNT(*) FROM Actors",  
        resultClass = XXXXX) // <--------------- problem  
})  
Run Code Online (Sandbox Code Playgroud)

现在在resultClass中,我们是否需要提供一个实际的JPA实体类?或者我们可以将它转换为包含相同列名的任何JAVA POJO类吗?

java jpa

156
推荐指数
7
解决办法
32万
查看次数

如何使用@ConstructorResult注释

我有一些本机查询,并希望将查询执行的结果映射到非实体POJO类的列表:

@SqlResultSetMapping(
    name = "SomeMapping",
    classes = {
        @ConstructorResult(targetClass = SomeClass.class,
            columns = {
                @ColumnResult(name = "id", type = Integer.class),
                @ColumnResult(name = "NAME", type = String.class),
                @ColumnResult(name = "DATE_BEGIN", type = java.util.Date.class)
            }
        )
    }
)

public class SomeClass{
    private Integer id;
    private String name;
    private java.util.Date begDate;
    private java.util.Date endDate;

    public SomeClass(Integer id, String name, Date begDate){
        this.id = id;
        this.name = name;
        this.begDate = begDate;
    }

    //Getters & Setters ...
}
Run Code Online (Sandbox Code Playgroud)

一般来说我想如何检索查询执行的结果:

String query = "SELECT " + …
Run Code Online (Sandbox Code Playgroud)

java jpa nativequery

6
推荐指数
1
解决办法
7085
查看次数

标签 统计

java ×2

jpa ×2

nativequery ×1