EJB 数据介体服务数据更新
Enterprise JavaBeans (EJB) 介体请求是复合 EJB 查询。可以通过使用 applyChanges 方法将已更新的 DataGraph 写回到数据源。
可以直接或者通过 EJB 实例将更新应用到数据源。
当通过 EJB 实例应用更改时,可以在 applyChanges 方法上指定可选的适配器类。首先将每个已更改的数据对象传递到适配器 applyChange 方法。适配器可以自己处理更改并返回 true,或者通过返回 false 让 EJB 介体处理更改。
适配器可用于定制乐观并发 (OCC) 逻辑或处理更改以只读 Datagraph 属性,或者处理需要业务逻辑的更改。
applyChanges 方法有两种格式。第一种格式,applyChanges( DataObject) 避开 EJB 容器来处理已更新的 DataGraph 并对数据库直接运行结构化查询语言 (SQL)insert、update 和 delete 语句。 第二种格式,applyChanges( DataObject, MediatorAdapter ) 使用 EJB 实例和访问者处理更新。MediatorAdapter 支持空值。
何时结合 applyChanges 使用适配器
- 当除了 create(PrimaryKey) 还有其他 create 方法时使用
- 当必须调用业务方法而不是容器管理的持久性 (CMP) setter 方法时使用
- 当需要特定的乐观高速缓存逻辑时使用
适配器如何运行
对 Datagraph 日志执行三种传递,将已更改的 DataObject 传递到适配器。
- 传递新的 DataObject。适配器可以创建对象并设置 CMP 字段。将延迟引用了尚未创建的企业 Bean 的容器管理的关系 (CMR),直到传递 2 为止。
- 传递新的和已更新的 DataObject。此时可以设置从传递 1 延迟 CMR。
- 传递已删除的 DataObject。