视图
我们使用 @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
。有关更多详细信息,请参阅 文档 / 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