我在 DB Postgres 上存储了一个返回一些列的过程。
List<Object[]> listrecord = this.em.createNamedStoredProcedureQuery("ContrVen.services")
.setParameter("dataval", datavalidita).getResultList();
该过程返回一个Object[]列表;
是否存在将 Object[] 转换为 MyRow 对象的方法?
我使用 EclipseLink 2.6.0 作为持久性提供程序。 MyRow 不是实体,因此我无法使用 resultClasses = MyRow.classes,因为 eclipselink 会引发异常(MyRow 不是已知的实体类型)。
最佳答案
JPA 2.1 规范 3.10.16.2.2 中的示例:
@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)})
})
然后您将在查询中使用它
List<CustomerDetails> listrecord = this.em.createNamedStoredProcedureQuery("ContrVen.services", "CustomerDetailsResult")
.setParameter("dataval", datavalidita).getResultList();
关于java - JPA 命名存储过程返回简单对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41703299/