表示
@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