我正在开发一个带有用户帐户的网络应用程序。我有三个系统角色和几个用户。我已经以这种方式实现了它(为了更好地理解而进行了简化):
@Table(name = "user")
public class User {
@Id
private String id;
@Column(name = User.COLUMN_LOGIN)
private String login;
@Column(name = User.COLUMN_PASSWORD)
private String password;
@ManyToMany(cascade = CascadeType.DETACH, fetch = FetchType.EAGER)
@JoinTable(name = "role_to_user",
joinColumns={@JoinColumn(name = "userId")},
inverseJoinColumns={@JoinColumn(name = "roleId")})
private Set<Role> roles = new LinkedHashSet<Role>();
}
@Table(name = "role")
public class Role {
@Id
private String id;
@Column(name = Role.COLUMN_ROLETYPE)
private int roletype;
}
将角色分配给用户的日期和结束此分配的日期的最佳方法是什么?我的想法是将列 startDate 和 endDate 添加到名为的绑定表中role_to_user
,但我不知道如何告诉它休眠:)
这是个好主意还是有更好的方法来做到这一点?
谢谢, Ondrej