Hibernate的关联关系映射之多对多映射

**技术分析之多对多JavaBean的编写**

 

1. 编写用户和角色的JavaBean

* 用户的JavaBean代码如下

public class User {

private Long user_id;

private String user_code;

private String user_name;

private String user_password;

private String user_state;

private Set<Role> roles = new HashSet<Role>();

}

 

* 角色的JavaBean代码如下

public class Role {

private Long role_id;

private String role_name;

private String role_memo;

private Set<User> users = new HashSet<User>();

}

 

2. 用户和角色的映射配置文件如下

* 用户的映射配置文件如下

<class name="com.itheima.domain.User" table="sys_user">

<id name="user_id" column="user_id">

<generator class="native"/>

</id>

<property name="user_code" column="user_code"/>

<property name="user_name" column="user_name"/>

<property name="user_password" column="user_password"/>

<property name="user_state" column="user_state"/>

<!---多对多的配置

       name:实体类中的集合属性名

       table:中间表

->

<set name="roles" table="sys_user_role">

<!--中间表中该实体类对应的外键字段-->

<key column="user_id"/>

<!---class:另一方中对象的全路径名 column:中间表中外键的字段

-->

<many-to-many class="com.huge.domain.Role" column="role_id"/>

</set>

</class>

 

* 角色的映射配置文件如下

<class name="com.itheima.domain.Role" table="sys_role">

<id name="role_id" column="role_id">

<generator class="native"/>

</id>

<property name="role_name" column="role_name"/>

<property name="role_memo" column="role_memo"/>

 

<set name="users" table="sys_user_role">

<key column="role_id"/>

<many-to-many class="com.huge.domain.User" column="user_id"/>

</set>

</class>

 

3. 多对多进行双向关联的时候:必须有一方去放弃外键维护权

 

**技术分析之多对多的级联保存**

1. 级联保存

* <set cascade="save-update">

**级联删除(在多对多中是很少使用的)**

1. 级联删除

<set cascade="delete">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值