JPA NamedStoredProcedure return 简单对象

JPA NamedStoredProcedure return simple objects

我在 DB Postgres 上存储了一个 returns 一些列的过程。

List<Object[]> listrecord = this.em.createNamedStoredProcedureQuery("ContrVen.services")
          .setParameter("dataval", datavalidita).getResultList();

程序returns一个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();