一.映射文件中的集合属性有:List、Set、Array、Bag、Map、idbag
1. Set:无序、不可重复
name:设定待映射持久化类的属性名
2. List:有序、添加次序列、以接口声明
list集合元素:list-index、key、element
1> <list>元素中用<list-index>子元素表示映射有序集合的次序列。
2> 当集合中属性的值存放于其他表中,必须以外键关联,并用<key>元素映射外键列
3> <list>元素中的<element>子元素的适用类型:基本数据类型、包装类、字符串、日期类型
4> List集合属性总是以外键列和元素列作为联合主键
3. Array:与List处理方式基本一致,用<array>元素完成映射
2> 一旦使用<bag>元素,无论是哪种集合属性都被映射为无序集合,而且集合属性对应的表没有主键
3> <bag>元素用<key>子元素映射外键列,用<element>子元素映射集合属性中的每个元素。
5. Map:需映射属性值和属性Key
Map集合元素:key、map-key、element
1> Hibernate以外键列和Key值作为联合主键
2> <map>元素中的<key>子元素映射外键列,<map-key>子元素映射Map集合的Key
3> <map-key>和<element>元素都必须确定type属性
二.组成关系映射
某个组建变量,亦称组建属性(持久化类的属性),类型为自定义类。
1> 有集合属性持久化类,则需使用set、list、bag等集合元素来映射集合属性。如果集合元素为定义类,则需使用<composite-element>子元素来映射集合元素。
2> 每个<component>元素映射一个组件属性,组件属性必须用class确定该组件的类型,用<property>子元素定义组件类型的子属性。
1. Set:无序、不可重复
Set集合元素:key、element
<set>元素来映射持久化类的set类型的属性name:设定待映射持久化类的属性名
cascade:设定级联操作的程度
<key>子元素:设定与所关联的持久化类对应的表的外键column:指定关联表的外键名
<element>元素包括的not-null="true"属性,表示集合属性表以关联持久化类的外键和元素列作为联合主键,否则该 表没有主键。
<one-to-many>子元素:设定所关联的持久化类(集合中存放的对象)。
class:指定关联的持久化类的类名2. List:有序、添加次序列、以接口声明
list集合元素:list-index、key、element
1> <list>元素中用<list-index>子元素表示映射有序集合的次序列。
2> 当集合中属性的值存放于其他表中,必须以外键关联,并用<key>元素映射外键列
3> <list>元素中的<element>子元素的适用类型:基本数据类型、包装类、字符串、日期类型
4> List集合属性总是以外键列和元素列作为联合主键
3. Array:与List处理方式基本一致,用<array>元素完成映射
4. Bag:无序、允许重复
1> bag元素可分别为List、Collection集合属性映射2> 一旦使用<bag>元素,无论是哪种集合属性都被映射为无序集合,而且集合属性对应的表没有主键
3> <bag>元素用<key>子元素映射外键列,用<element>子元素映射集合属性中的每个元素。
5. Map:需映射属性值和属性Key
Map集合元素:key、map-key、element
1> Hibernate以外键列和Key值作为联合主键
2> <map>元素中的<key>子元素映射外键列,<map-key>子元素映射Map集合的Key
3> <map-key>和<element>元素都必须确定type属性
二.组成关系映射
某个组建变量,亦称组建属性(持久化类的属性),类型为自定义类。
1> 有集合属性持久化类,则需使用set、list、bag等集合元素来映射集合属性。如果集合元素为定义类,则需使用<composite-element>子元素来映射集合元素。
2> 每个<component>元素映射一个组件属性,组件属性必须用class确定该组件的类型,用<property>子元素定义组件类型的子属性。