Jpa 缺少到POJO的EclipseLink@SQLResultSetMapping
在EclipseLink 2.5 JPA 2.1中,我试图将本机查询的结果映射到POJO,根据以下链接,POJO应该是可能的: …使用直接取自EclipseLink 2.5 api文档的以下语法:Jpa 缺少到POJO的EclipseLink@SQLResultSetMapping,jpa,eclipselink,sqlresultsetmapping,Jpa,Eclipselink,Sqlresultsetmapping,在EclipseLink 2.5 JPA 2.1中,我试图将本机查询的结果映射到POJO,根据以下链接,POJO应该是可能的: …使用直接取自EclipseLink 2.5 api文档的以下语法: Query q = em.createNativeQuery( "SELECT c.id, c.name, COUNT(o) as orderCount, AVG(o.price) AS avgOrder " + "FROM Customer c, Orders o " +
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)
}
)
}
)
但是,找不到@SqlResultSetMapping的classes属性。我尝试了Eclipselink 2.5.2和2.6。是否有另一个可选的EclipseLink jar我必须使用才能获得该功能?看起来这本指南已经过时了,试试看,你怎么知道它已经过时了?我的链接是EclipseLink 2.5。你的链接甚至没有说它是为哪个JPA实现或版本的。此外,这两个链接都表明SqlResultSetMapping的classes属性存在,所以我不确定您的建议是什么。有时人们会错误地将POJO注释为@SqlResultSetMapping。请看这个并告诉我这是否是您的情况。您确定导入了javax.persistence.SqlResultSetMapping而不是其他注释吗。我只是尝试了一下你的代码,它是有效的。你能在你的类路径上使用JPA1 jar吗?