一张人员表(manager),一张角色表(role),两表多对多关系。
1. Role as = this.getAllService().getRoleService().getById((long) 1);//得到id为1的角色as
2. System.out.println(as.getId());
3. if(manager.getRoles().contains(as)) System.out.println("dasfasf");//判断manager是否有角色as
4. for(Iterator<Role> it = manager.getRoles().iterator(); it.hasNext();){
5. Role bs = it.next();
6. System.out.println(bs.getId());
7. if(manager.getRoles().contains(bs)) System.out.println("2");
8. }
我的数据库角色表中只有一条id为1的记录,上面的语句执行过后发现第二行语句输出1,第三行无法输出(manager没有角色as),第六行输出1,第七行输出2(manager有角色bs)。as和bs都是id为1的角色,为什么第3行和第7行条件语句判断不同呢?
1. Role as = this.getAllService().getRoleService().getById((long) 1);//得到id为1的角色as
2. System.out.println(as.getId());
3. if(manager.getRoles().contains(as)) System.out.println("dasfasf");//判断manager是否有角色as
4. for(Iterator<Role> it = manager.getRoles().iterator(); it.hasNext();){
5. Role bs = it.next();
6. System.out.println(bs.getId());
7. if(manager.getRoles().contains(bs)) System.out.println("2");
8. }
我的数据库角色表中只有一条id为1的记录,上面的语句执行过后发现第二行语句输出1,第三行无法输出(manager没有角色as),第六行输出1,第七行输出2(manager有角色bs)。as和bs都是id为1的角色,为什么第3行和第7行条件语句判断不同呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货