对hibernate多对多的理解

来源:互联网 发布:php 计算最小公约数 编辑:程序博客网 时间:2024/05/01 07:46

第一次写

有点尴尬

表:

关系

咨询员 (咨询员和学生 是 多对对)

学生

用户 (学生和咨询员)

角色  (用户和角色是 多对多)

权限 (角色和权限是多对多)


public class Test {


/**
* 查询一号学生拥有的权限
*/

@org.junit.Test
public void test1() {
Session session = HibernateUtils.getSessionFactory().openSession();
Student student = (Student)session.get(Student.class, 1);
if(null != student) {
Set<Role> roles = student.getRoles();
if(null != roles && roles.size() > 0) {
for (Role role : roles) {
Set<Permissions> permissions = role.getPermissions();
if(null != permissions && permissions.size() > 0) {
for (Permissions permission : permissions) {
System.out.println(permission);
}
}
}
}
}
session.close();
}

/**
* 一个咨询员拥有的权限
*/
@org.junit.Test
public void test2() {
Session session = HibernateUtils.getSessionFactory().openSession();
Consultant consultant = (Consultant)session.get(Consultant.class, 1);
if(null != consultant) {
Set<Role> roles = consultant.getRoles();
if(null != roles && roles.size() > 0) {
for (Role role : roles) {
Set<Permissions> permissionss = role.getPermissions();
if(null != permissionss && permissionss.size() > 0) {
for (Permissions permissions : permissionss) {
System.out.println(permissions);
}
}
}
}
}
session.close();
}

/**
* 查询一号咨询员有多个学生,在查询该学生的权限
*/
@org.junit.Test
public void test3() {
Session session = HibernateUtils.getSessionFactory().openSession();
Consultant consultant =(Consultant)session.get(Consultant.class, 1);
if(null != consultant ) {
Set<Student> students = consultant.getStudents();
if(null != students && students.size() > 0) {
for (Student student : students) {
Set<Role> roles = student.getRoles();
if(null != roles && roles.size() > 0) {
for (Role role : roles) {
Set<Permissions> permissions =  role.getPermissions();
if(null != permissions && permissions.size() > 0) {
for (Permissions permissions2 : permissions) {
System.out.println(permissions2);
}
}
}
}
}
}
}

}
}

0 0
原创粉丝点击