一对多
实体类
一: private Set<LinkMan> linkMans; // 表达一对多关联 多: private Customer customer ; //表达多对一关联
设置文件
一:
<!-- 鸠合,一对多关联,在设置文件中设置 --> <!-- name属性: 鸠合属性名 column属性: 外键列名 class属性: 与我关联的对象完全类名 --> <!-- 级联操纵: cascade属性 save-update: 级联保留更新 delete: 级联删除 all: save-update+delete 级联操纵: 简化操纵.目标就是为了少些两行代码. --> <!-- inverse属性: 设置关联是不是保护. true: customer不保护关联 false(默认值): customer保护关联 inverse属性: 机能优化.进步关联保护的机能. 准绳: 不管怎样摒弃,总有一方必需要保护关联. 一对多关联中: 一的一方摒弃.也只能一的一方摒弃.多的一方不能摒弃. --> <set name="linkMens" inverse="true" cascade="delete"> <key column="lkm_cust_id" ></key> <one-to-many class="LinkMan" /> </set>
多:
<!-- 多对一 --> <!-- name属性: 援用属性名 column属性: 外键列名 class属性: 与我关联的对象完全类名 --> <!-- 级联操纵: cascade属性 save-update: 级联保留更新 delete: 级联删除 all: save-update+delete 级联操纵: 简化操纵.目标就是为了少些两行代码. --> <!-- 多的一方: 不能摒弃保护关联的.外键字段就在多的一方. --> <many-to-one name="customer" column="lkm_cust_id" class="Customer"></many-to-one>
多对多
实体类
多:private Set<User> users; // 表达多对多关联 多:private Set<Role> roles; // 表达多对多关联
设置文件
多:
<!-- 多对多关联表达 --> <!-- name: 鸠合属性名 table: 设置中心表名 key column: 外键,他人援用"我"的外键列名 many-to-many class: 我与哪一个类是多对多关联 column: 外键.我援用他人的外键列名 --> <!-- 运用inverse属性 true: 摒弃保护外键关联 false(默认值):保护关联 结论: 将来在开辟中,假如碰到多对多关联.一定要挑选一方摒弃保护关联. 平常谁来摒弃要看营业方向. 比方录入员工时,需要为员工指定所属角色. 那末营业方向就是由员工保护角色. 角色不需要保护与员工关联.角色摒弃保护 --> <set name="users" table="sys_user_role" inverse="true" > <key column="role_id" ></key> <many-to-many class="User" column="user_id" ></many-to-many> </set>
多:
<!-- 多对多关联表达 --> <!-- name: 鸠合属性名 table: 设置中心表名 key column: 外键,他人援用"我"的外键列名 many-to-many class: 我与哪一个类是多对多关联 column: 外键.我援用他人的外键列名 --> <!-- cascade级联操纵: save-update: 级联保留更新 delete: 级联删除 all: 级联保留更新+级联删除 结论: cascade简化代码誊写.该属性使不运用无所谓. 发起要用只用save-update. 假如运用delete操纵太甚风险.尤其在多对多中.不发起运用. --> <set name="roles" table="sys_user_role" cascade="save-update" > <key column="user_id" ></key> <many-to-many class="Role" column="role_id" ></many-to-many> </set>
相干引荐:
数据库设想多对多关联的几种形状_MySQL
MySQL多实例的设置和治理细致
以上就是hibernate的设置文件事情道理和两种设想:一对多、多对多的细致内容,更多请关注ki4网别的相干文章!