一对多(用的最多):
PO1 PO2
1(主键一方) n
用个集合来表示多的关联属性
one to many many to one
(存在集合SET,所以写个hashcode和equals方法)
映射文件中
<id name="oid">
<generator class="native" />
</id> 映射文件中
<set name="acts" cascade="all-delete-orphan"
inverse="true"> <many-to-one name="owner" column="fid" cascade="save -update" />
<key column="fid" />---指定外键
<one-to-many class="Account" />--acts集合的类型 如在实体类用SET,非关联属性实现hashcode和equals方法
</set>
关联属性 acts 一对多
数据库中 主键是oid 外键是fid 一对多
cascade="none"---默认的,不用级联
cascade="save-update"---不级联删除(可以级联保存和级联更新)--一般用在一对多中,删除多的那方
cascade="delete"---级联删除(一般不用)
cascade="all"---级联保存,级联更新,级联删除(从集合中remove的级联对象不能删除,要手动删除)--一般用在一对一
cascade="delete-orphan"
cascade="all-delete-orphan"--从集合中remove的对象直接从数据库中删除
inverse="true"---这一关联属性端为关系的维护方(数据库先处理关系的另一方,再处理这一端)--提高效率(少更新一次account对应的表)
一般关系的维护方交给多的一方,在一的这一方的映射文件中用inverse="true"
值改了后,hibernate会自动更新
---------------------------------------------------------------------------------------------------
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余4页未读,立即下载