一个Hibernate多对多实例

这篇博客展示了如何在Hibernate中实现一个多对多的关系映射。通过一个用户与角色的经典例子,解释了User和Role的实体配置以及中间表user_role的建立。测试类演示了如何给用户分配角色,并强调了`inverse="true"`属性的作用,说明了在哪个实体维护主外键关系以及不同添加操作对SQL输出的影响。
摘要由CSDN通过智能技术生成

更新:2015-02-11

	@ManyToMany(targetEntity = Role.class, fetch = FetchType.EAGER)
	@JoinTable(name = "T_USERS_ROLES", joinColumns = @JoinColumn(name = "USER_ID"), inverseJoinColumns = @JoinColumn(name = "ROLE_ID"))
	private Set<Role> roles = new HashSet<Role>();
	@ManyToMany(mappedBy = "roles", <span style="font-family: Arial, Helvetica, sans-serif;">targetEntity = User.class , </span>fetch = FetchType.LAZY)
	private Set<User> users = new HashSet<User>();
双向多对多,上面是在user中声明,下面是在role中声明。

如果单向多对多,则删除不要的那侧域声明。比如不需要通过role去查询拥有的user,可删除下面role侧的users域声明
---------------------------------------------------------------------------------------------------------------------------------------------------------------

下面贴上经典的多对多实例:用户与角色。直接上代码。

用户User:

package cn.qeli.ums.entity;

import java.util.HashSet;
import java.util.Set;

public class User {

	private String userid;
	private String username;
	private String password;
	private Set roles = new HashSet();

	public User() {
		super();
	}

	public String getUserid() {
		return userid;
	}

	public void setUserid(String userid) {
		this.userid = userid;
	}

	public String getUsername() {
		return username;
	}

	public void setU
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值