Hibernate 关联映射
单向(N-1)多对一关联
使用场合:只通过多的一方访问一的一方,一的一方不访问多的一方。在设计对象模型时,多的一方中有一个一的一方类型的属性;在映射文件中,多的一方使用<many-to-one ... />元素来映射这个属性。
<many-to-one ... />元素可以有一下属性:
name:必选,映射的属性名。
column:指定进行外键关联的列名,默认与属性名name相同。
class:指定关联实体的全限定类名。
casecade:指定哪些操作会从主表记录级联到子表记录。
fetch:指定Hibernate的抓取策略,join或select。
update、insert:指定对应的字段是否包含在用于Hibernate生成的uodate或insert语句中,默认为true。
property-ref:指定关联类的一个属性,这个属性映射的列和本类的外键相对应(当外键关联唯一键时须指定该属性)。
access:指定访问此关联属性的策略,默认为property。
unique:指定Hibernate通过DDL为外键列添加唯一约束。这使关联具有一对一的约束。
not-null:指定Hibernate通过DDL为外键列添加非空约束。
optimistic-lock:指定更新时是否需要获得乐观锁。
lazy:指定引用关联实体的延时加载属性,默认为proxy。
not-found:指定当外键参照的主表记录不存在时如何处理,默认为exception(抛出异常)。
formula:指定一个SQL表达式,该外键值根据此SQL表达式来计算。
例如:
员工和部门,多个员工对应一个部门。在访问员工的时候要知道其所属部门,而访问部门的时候不必关心该部门有多少员工。
对象模型:
映射文件: