hibernate映射集合属性通常需要指定一个name属性,用于标明该集合属性的名称;
除此之外,它还有如下可选属性:
- table:指定保存集合的表名;
- schema:指定保存集合属性的数据表的schema的名称,用于覆盖根元素的schema属性;
- lazy:设置是否启动延迟加载,默认true;
- inverse:指定该集合作为双向关联关系中的另一端;
- cascade:指定当操作持久化对象时是否让操作级联到子实体类;
- order-by:设置数据库对集合元素排序;
- sort:指定集合排序顺序,可以是自然顺序,或者给定排序类进行排序;
- where:指定任意的SQL语句中的where条件,该条件在加载或者删除几何元素时起作用,只有满足该条件的记录才会被操作;
- batch-size:定义延迟加载时每批抓取集合元素的数量,默认是 : 1;
- access: 指定hibernate访问集合属性的策略,默认property;
- mutable:指定集合的元素是否可变;
- 因为集合属性都需要保存到另一个数据表中,所以保存集合属性的数据表必须包含一个外键列用于参照主键列,该外键列通过在<set....../><list....../>等集合元素中使用<key../>子元素来映射,
指定<key...../>元素时可以指定如下可选选项:
- column:指定外键字段的列名;
- on-delete:指定外键约束是否打开数据库级别的级联删除;
- property:指定外键引用的字段是否为原表的主键;
- not-null:指定外键列是否具有非空约束,如果指定非空约束,则意味着无论何时,外键总是主键的一部分;
- update:指定外键是否可更新,如果不允许更新,则意味着无论何时外键总是主键的一部分!
- unique:指定外键列是否具有唯一约束,如果指定唯一约束,则意味着无论何时,外键总是主键的一部分!
注意:当集合元素是基本类型,字符串类型,日期类型或其他符合类型,not-null默认为true;