涓嬮潰鏄〃鐨勪唬鐮侊紙閰嶇疆涓篴nnotation錛?br>User錛?br>


package sub;
import java.io.Serializable;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@Entity
public class User implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
private Long id;
private Set<Role> roles;
@Id
@GeneratedValue
public Long getId()
{
return id;
}
public void setId(Long id)
{
this.id = id;
}
@ManyToMany
@JoinTable(name="UserRole",joinColumns={@JoinColumn(name="user_ID")},inverseJoinColumns={@JoinColumn(name="role_ID")})
public Set<Role> getRoles()
{
return roles;
}
public void setRoles(Set<Role> roles)
{
this.roles = roles;
}
}
Role錛?br>


package sub;
import java.io.Serializable;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@Entity
public class Role implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
private Long id;
private Set<User> users;
@Id
@GeneratedValue
public Long getId()
{
return id;
}
public void setId(Long id)
{
this.id = id;
}
@ManyToMany
@JoinTable(name="UserRole",joinColumns={@JoinColumn(name="role_ID")},inverseJoinColumns={@JoinColumn(name="user_ID")})
public Set<User> getUsers()
{
return users;
}
public void setUsers(Set<User> users)
{
this.users = users;
}
}
UserRoleId錛?br>


package sub;
import java.io.Serializable;
import javax.persistence.Embeddable;
@Embeddable
public class UserRoleId implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
private Long userId;
private Long roleId;
public UserRoleId(Long userId, Long roleId)
{
this.userId = userId;
this.roleId = roleId;
}
public UserRoleId()
{
this(null,null);
}
@Override
public boolean equals(Object obj)
{
if(obj == this)return true;
if(obj instanceof UserRoleId)
{
final UserRoleId other = (UserRoleId) obj;
Long userT = getUserId();
Long userOther = other.getUserId();
Long roleT = getRoleId();
Long roleOther = other.getRoleId();
return ((userT == userOther) || (userT != null &&
userOther != null && userT.equals(userOther))) &&
((roleT == roleOther) || (roleT != null &&
roleOther != null && roleT.equals(
roleOther)));
}
return false;
}
@Override
public int hashCode()
{
int re = 17;
re += (userId == null?0:userId.hashCode());
re += (roleId == null?0:roleId.hashCode());
return 37*re;
}
public Long getUserId()
{
return userId;
}
public void setUserId(Long userId)
{
this.userId = userId;
}
public Long getRoleId()
{
return roleId;
}
public void setRoleId(Long roleId)
{
this.roleId = roleId;
}
}
UserRole錛?br>


package sub;
import java.io.Serializable;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@Entity
public class UserRole implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
private UserRoleId id;
private Role role;
private User user;
@EmbeddedId
@AttributeOverrides( {
@AttributeOverride(name = "userId", column = @Column(name = "user_ID", unique = false, nullable = false, insertable = true, updatable = true)),
@AttributeOverride(name = "roleId", column = @Column(name = "role_ID", unique = false, nullable = false, insertable = true, updatable = true)) })
public UserRoleId getId()
{
return id;
}
@ManyToOne(cascade = {})
@JoinColumn(name = "role_ID", unique = false, nullable = false, insertable = false, updatable = false)
public Role getRole()
{
return role;
}
@ManyToOne(cascade = {}, fetch = FetchType.EAGER)
@JoinColumn(name = "user_ID", unique = false, nullable = false, insertable = false, updatable = false)
public User getUser()
{
return user;
}
public void setId(UserRoleId id)
{
this.id = id;
}
public void setRole(Role role)
{
this.role = role;
}
public void setUser(User user)
{
this.user = user;
}
}
鍦╩ysql鏁版嵁搴撲腑錛屼繚瀛楿serRole鏃跺嚭閿欍傝屽畬鍏ㄧ浉鍚岀殑浠g爜鍦╫racle鏁版嵁涓紜?br>鎿嶄綔濡備笅錛?br>
User user;
Role role;
//緇忚繃澶氭鎿嶄綔浠ュ悗錛寀ser涓巖ole閮戒繚瀛樺埌鏁版嵁搴擄紝涓庝箣鐩稿叧鑱旂殑session宸插叧闂?br> Session s = null;//鍙栧緱s鐨勪唬鐮佹病鏈夊啓鍑烘潵
s.beginTransaction();
UserRole userRole = new UserRole();
userRole.setId(new UserRoleId(user.getId(),role.getId()));
userRole.setUser(user);
userRole.setRole(role);
s.persist(userRole);
s.getTransaction().commit();
//涓鎻愪氦灝卞嚭閿欙紝鎻愮ずuser娌℃湁淇濆瓨錛屼絾鏄鎬殑鏄負浠涔堝湪oracle涓畬鍏ㄦ紜?br>//鏈鍚庡湪mysql涓綔濡備笅鐨勪慨鏀瑰彲浠ユ紜繚瀛?br>//鎶?nbsp;userRole.setUser(user)涓巙serRole.setRole(role)鍒犻櫎
鏈夐偅浣嶇煡閬撴槸浠涔堥棶棰橈紝璇峰憡涔?

]]>