与User多对多的角色类:
- /*
- * @ManyToMany 注释表示Teacher 是多对多关系的一端。
- * @JoinTable 描述了多对多关系的数据表关系,name属性指定中间表名称。
- * joinColumns 定义中间表与Teacher 表的外键关系,中间表Teacher_Student的Teacher_ID 列是Teacher 表的主键列对应的外键列。
- * inverseJoinColumns 属性定义了中间表与另外一端(Student)的外键关系。
- */
- @ManyToMany (cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
- @JoinTable (name = "Teacher_Student" ,
- joinColumns ={@JoinColumn (name = "teacher_ID" , referencedColumnName = "teacherid" ) },
- inverseJoinColumns = { @JoinColumn (name = "student_ID" , referencedColumnName = "studentid" )
- })
- public Set<Student> getStudents() {
- return students;
- }
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE },targetEntity=Role.class)
@JoinTable(name = "J_USER_ROLE", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
@OrderBy("id")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public Set<Role> getRoles() {
return this.roles;
}