表示

@View を使用してエンティティをデータベースビューにマップします。

@Entity
@View(name = "order_vw", dependentTables = {"o_order", "o_order_detail"})
public class MyOrderView {
  // fields, accessors etc
}

@Id プロパティをマップする必要はないことに注意してください (実際、通常のエンティティに対してマップする必要もありません)。

依存テーブル

ビューに基づいたエンティティで L2 キャッシュを有効にする場合は、dependentTables 経由でそのビューが使用する基盤となるテーブルを指定する必要があります。これらのテーブルのデータが変更された場合、そのビューの L2 キャッシュが自動的に無効になります。

ビューの定義に対する追加の DDL

Ebean がデータベースビューを作成するための DDL を実行するには、extra-ddl.xml も必要です。詳細については、docs / extra-ddl を参照してください。

  
  

  
      drop view order_agg_vw if exists;
  

  
    create or replace view order_agg_vw as
    select d.order_id, sum(d.order_qty * d.unit_price) as order_total,
           sum(d.ship_qty * d.unit_price) as ship_total
    from o_order_detail d
    group by d.order_id