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