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

我在我的项目中使用JPA。

我来到一个查询,其中我需要对五个表进行联接操作。因此,我创建了一个本机查询,该查询返回五个字段。

现在,我想将结果对象转换为包含相同五个String的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

})

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

回答:

JPA提供了一个SqlResultSetMapping允许你将本机查询返回的任何内容映射到Entity的功能或自定义类。

EDIT JPA 1.0不允许映射到非实体类。仅在JPA 2.1中,添加了ConstructorResult来映射Java类的返回值。

另外,对于OP的计数问题,使用一个定义一个结果集映射就足够了 ColumnResult

以上是 Java JPA:如何将本机查询结果集转换为POJO类集合 的全部内容, 来源链接: utcz.com/qa/421175.html

回到顶部