2个表,一个是User一个是Role
3个类,code如下:
@Entity
@Table(name="t_user")
public class User {


private int id;


private String username;


private String password;

/**
 * 帐号失效时间
 */
private Date expireTime;

/**
 * 帐号创建时间
 */
private Date createTime;

private Person person;
private Set<Role> roles = new HashSet<Role>();
@ManyToMany
@JoinTable(name="t_users_roles",
joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
inverseJoinColumns={@JoinColumn(name="role_id", referencedColumnName="id")})
public Set<Role> getRoles() {
return roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(unique=true, nullable=false)
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Column(nullable=false)
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getExpireTime() {
return expireTime;
}
public void setExpireTime(Date expireTime) {
this.expireTime = expireTime;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@OneToOne
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
}
----------------------------------------------------------------------------------------------------------
@Entity
@Table(name="t_role")
public class Role {


private int id;
private String name;
private Set<User> users = new HashSet<User>();
@ManyToMany(mappedBy="roles")
public Set<User> getUsers() {
return users;
}
public void setUsers(Set<User> users) {
this.users = users;
}
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
------------------------------------------------------------------------------------------------------------
@Entity
@Table(name="t_users_roles")
public class UsersRoles {

private int id;
private Role role;
private User user;
private int orderNo;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@ManyToOne
@JoinColumn(name="role_id")
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
@ManyToOne
@JoinColumn(name="user_id")
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public int getOrderNo() {
return orderNo;
}
public void setOrderNo(int orderNo) {
this.orderNo = orderNo;
}
}
-------------------------------------------------------------------------------------------------
这样建出来的表呢,我无法向中间表里面插数据(中间表主键并不是我手动指定的ID,而成了user_id,role_id的联合主键)
hibernate中建立多对多关联,如果要建中间表那个类,是不是只能建立单向关联?-----------------------------------------------------------------------------------------------------