读书人

hibernate会合映射

发布时间: 2012-08-22 09:50:35 作者: rapoo

hibernate集合映射

?

Hibernate集合映射

Hibernate集合映射主要有以下几种:

<set name=”” order-by=”” inverse=”” lazy=”” cascade=””>

<key column=””/>

<one-to-many class=””/>

</set>

?

<list name=”” inverse=”” lazy=”” cascade=””>

<key-index column=””/>

<one-to-many class=””/>

</list>

?

<bag name=”” inverse=”” lazy=”” cascade=”” order-by=””>

<key column=””/>

<one-to-many class=””/>

</bag>

?

?


?? ?在上面的类图中,如果Header的set集合映射设置inverse=”true”,那么header.getLines().add(line)不会使任何变化持久化,只有正确的设置了line.setHeader(header)之后才会进行持久化。

Inverse=”true”提示Hibernate我们在两个映射文件中(父子类)中映射了同一个外键列两次,而只有另一侧(子类一侧)发生变化时才进行持久化操作。

?? ? cascade属性可以设置关系映射中的级联操作,hibernate的可选类型:save-update、delete、delete-orphan、all-delete-orphan等,其中delete-orphan、all-delete-orphan仅对one-to-many关系有效。以上面订单头、订单行为例,从header的lines集合中去除一个Line元素,即表明需要删除Line表中的改行,如果Line表不会被其他实体类引用,那么级联操作最好选择delete-orphan、all-delete-orphan都可以。

?

读书人网 >软件架构设计

热点推荐