JPA SqlResultSetMapping 对象顺序

Posted

技术标签:

【中文标题】JPA SqlResultSetMapping 对象顺序【英文标题】:JPA SqlResultSetMapping object order 【发布时间】:2018-01-20 14:38:09 【问题描述】:

JPA:如果在@SqlResultSetMapping 中定义了类、实体和列,那么返回对象的顺序是什么?

@SqlResultSetMapping(
       name="CustomerDetailsResult",
       classes=
          @ConstructorResult(
               targetClass=com.example.Customer.class,
                 columns=
                    @ColumnResult(name="id"),
                    @ColumnResult(name="name"),
                 
          )
       ,
       entities= 
            @EntityResult(entityClass=com.example.Order.class, fields=
                @FieldResult(name="id", column="order_id"),
                @FieldResult(name="quantity", column="order_quantity"), 
                @FieldResult(name="item", column="order_item")),
        columns=
            @ColumnResult(name="item_name")
      )

结果行是 Object[]customer, order, scalar_value 或 Object[]order, scalar_value, customer 等。

【问题讨论】:

你是指查询中调用getResultList()后的行中列的顺序还是List中行的顺序? 对象在一行中的顺序。 【参考方案1】:

结果将包含您在@SqlResultSetMapping 中定义的对象。

在你的情况下:

Object[]customer, order, scalar_value

【讨论】:

以上是关于JPA SqlResultSetMapping 对象顺序的主要内容,如果未能解决你的问题,请参考以下文章

JPA 2.1 @ConstructorResult 和 @SqlResultSetMapping 与 JPQL SELECT NEW SomeConstructor(...) 相比有啥优势?

JPA Sql NativeQuery with SqlResultSetMapping throwing java.sql.SQLException: Column 'formula3_0_' no

jpa 2.1中的@ConstructorResult映射

jpa命名本机查询无结果

MySQL 视图中 LONGTEXT 字段的 JPA 本机查询导致错误

Spring Data Jpa 自定义 repository 转 DTO