Hibernet映射
集合映射:
类的属性字段是集合的。
set:
<set name=”属性字段” table=“属性字段的表名”>
<key 外键 column=“”>
<element column=“属性存储内容的位置名称” type=””>
set集合属性的映射
name 指定要映射的set集合的属性
table 集合属性要映射到的表
key 指定集合表(t_address)的外键字段
element 指定集合表的其他字段
type 元素类型,一定要指定
list:
<list name=”属性字段” table=“属性字段的表名”>
<key 外键 column=“”>
<list-index column=”index”> list是有序的,这个是用来排序的
<element column=“属性存储内容的位置名称” type=””>
--
list集合映射
list-index 指定的是排序列的名称 (因为要保证list集合的有序)
map:
<map name=”属性字段” table=“属性字段的表名”>
<key 外键 column=“”>
<map-key column=”第一个内容:属性存储内容的位置名称” type=”” >
<element column=“第二个内容:属性存储内容的位置名称” type=””>
map集合的映射
key 指定外键字段
map-key 指定map的key
element 指定map的value
一对多,多对一
<many-to-one name=”属性字段” calss=”另一个类的名称” column=”外键字段”>
<one-to-mony calss=”另一个类的名称”>
在一对多与多对一的关联关系中,保存数据最好的通过多的一方来维护关系,这样可以减少update语句的生成,从而提高hibernate的执行效率!
注意:
配置了哪一方,哪一方才有维护关联关系的权限!
Inverse属性
Inverse属性,是在维护关联关系的时候起作用的。
表示控制权是否转移。(在一的一方起作用)
Inverse , 控制反转。
Inverse = false 不反转; 当前方有控制权
True 控制反转; 当前方没有控制权
cascade 表示级联操作 【可以设置到一的一方或多的一方】
none 不级联操作, 默认值
save-update 级联保存或更新
delete 级联删除
save-update,delete 级联保存、更新、删除
all 同上。级联保存、更新、删除
多对多
<many-to-many column="另一个类的id" class="另一个类的名字"></many-to-many>
many-to-many
column 指定外键字段对应的项目字段
class 集合元素的类型