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