概念
让一个对象映射成另一个对象表的若干字段。
许多小对象在OO系统中有意义,但作为表却在数据库中没有意义。比如金钱对象和日期范围对象,所以嵌入值把一个对象的值映射成该对象的所有者记录中的字段,把这些小对象的域映射成所有者表中的域总比建立新记录要好。
运行机制
当所有者对象被加载或保存时,依赖者对象也同时被加载或保存。依赖者类没有自己的持久化方法。所有的持久化工作都由所有者完成。
使用时机
- 明显、简单的值对象,如金钱和日期范围。
- 要权衡类似订单和发货对象这样的引用对象,如果仅当加载订单时才加载发货数据,则可以使用嵌入值。
- 已有的数据库方案中如果一个表包含某种数据时,而这些数据可以分成内存中多个对象时,可以使用嵌入值,
- 所有者和依赖者之间的关联在两端都是单值的时候,使用嵌入值;或者由多个候选依赖者并且他们的数字小而固定的情况,使用嵌入值。
- 嵌入值只能用于相当简单的依赖者上。
依赖映射示例-唱片和曲目(java)
Step1 :建立产品提供类
Step2 :加载方法的处理
Step3 :更新