更新: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