让一个类为部分类执行数据库映射。
例如:唱片被加载或者保存时,唱片上的所有曲目都可能被加载或者保存,如果没有被数据库中的其他表引用,可以通过唱片映射器为曲目执行相关映射,这种映射就是依赖映射。
运行机制
基本思想:在数据库持久化时,数据库中的某个类(依赖者)依赖于其他类(所有者)。每个依赖者有且仅有一个所有者。
- 对于活动记录和行数据入口,依赖者类不包含数据库映射代码,都写在所有者中
- 表数据入口中,通常根本没有依赖者类,也是在所有者中完成。
- 依赖者的一个重要特性就是它没有标识域,因此就不用存储到一个标识映射中,也不能由查找方法通过ID加载。
- 一个依赖者也可能是另外一个依赖者的所有者,这时,一个所有者控制所有依赖者层级。
- 由于依赖者的写和保存都是所有者来做,并且没有外部引用,因此对依赖者的更新可以通过删除和插入处理。
- 对所有者是否变化进行跟踪的过程变得复杂。
使用时机
- 当一个对象只被另一个对象引用的时候,使用依赖映射。
- 要满足的前置条件是:每个依赖者必须恰好有一个所有者;不能有任何除所有者之外的对象拥有对依赖者的引用。
- 在工作单元里,建议不用依赖映射,因为工作单元不能控制依赖者。
依赖映射示例-唱片和曲目(java)
Step1 :建立曲目和唱片类
Step2 :处理所有者的同时处理依赖者