[英]Spring : JPA to convert native SQL to non entity pojo
我有本机SQL,它返回对象的集合,并且我想以对象的集合的形式获取结果(非实体的pojo类)
is it possible to get the results from native SQL as collection of non entity?
I am using spring jpa 1.10
在JPA 1中无法映射非实体类。
从JPA 2.1开始,可以将ConstructorResult与SqlResultSetMapping
批注结合使用,以将SQL查询的SELECT子句映射到构造函数。
这是例子
Query q = em.createNativeQuery(
"SELECT c.id, c.name, COUNT(o) as orderCount, AVG(o.price) AS avgOrder " +
"FROM Customer c, Orders o " +
"WHERE o.cid = c.id " +
"GROUP BY c.id, c.name",
"CustomerDetailsResult");
@SqlResultSetMapping(
name="CustomerDetailsResult",
classes={
@ConstructorResult(
targetClass=com.acme.CustomerDetails.class,
columns={
@ColumnResult(name="id"),
@ColumnResult(name="name"),
@ColumnResult(name="orderCount"),
@ColumnResult(name="avgOrder", type=Double.class)
}
)
}
)
将NativeQuery结果映射到POJO-这是使用@JsonFormat和ObjectMapper的 JPA独立解决方案,其代码示例详细说明了已经提到的@ darshan-patel。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.