8

私は本当に混乱しています。列の結果セットのマッピングはどのように機能しますか? エンティティの代わりに列を使用する場合、何をマッピングしていますか? この例を見てください...

Query q = em.createNativeQuery(
       "SELECT o.id AS order_id, " +
           "o.quantity AS order_quantity, " +
           "o.item AS order_item, " + 
           "i.name AS item_name, " +
         "FROM Order o, Item i " +
         "WHERE (order_quantity > 25) AND (order_item = i.id)",
       "OrderResults");

   @SqlResultSetMapping(name="OrderResults",
       entities={
           @EntityResult(entityClass=com.acme.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")}
       )

彼がここで何をしようとしているのか理解できます。エンティティの結果は彼が望む結果セットになり、フィールドはフィールドをエイリアス名にマップしようとします。列の結果は一体何をしているのですか? 何かにマッピングされているようには見えません。

4

1 に答える 1