zoukankan      html  css  js  c++  java
  • hibernate Criteria查询多对多(Set集合)条件筛选

    PO

    Java代码  收藏代码
    1. public class UserPO implements java.io.Serializable {  
    2.     /** 用户唯一标识ID */  
    3.     private String id;  
    4.     /** 状态(在用1停用0) */  
    5.     private String userStatus;  
    6.   
    7.     private Set roles = new HashSet();  
    8.     ........  
    9. }  
    Java代码  收藏代码
    1. public class RolePOimplements java.io.Serializable {  
    2.     /** 角色唯一标识ID */  
    3.     private String id;  
    4.     /** 角色级别 */  
    5.     private Integer roleLevel;  
    6.   
    7.     private Set users = new HashSet(0);  
    8.     ........  
    9. }  

    查询用户userStatus等于1且他的角色Level等于3的用户

    Java代码  收藏代码
    1. DetachedCriteria criteria = DetachedCriteria.forClass(UserPO.class); // org.hibernate.criterion.DetachedCriteria  
    2. criteria.add(Restrictions.eq("userStatus", "1"))  
    3.     .createAlias("roles", "r")  
    4.     .add(Restrictions.eq("r.roleLevel", new Integer(3)));  

    criteria.add(Restrictions.eq("userStatus", "1"))

    .createAlias("roles", "r")

    .add(Restrictions.eq("r.roleLevel", new Integer(3)));

    需要注意的是:

    获取User时是获得了roles的全部记录集,而不是经过过滤的记录集,相当于User的id获得的完整实例一样

  • 相关阅读:
    SOA架构
    基于计算机视觉的交通场景智能应用-需求分析和原型设计
    《一线架构师实践指南》第三部分阅读笔记
    2020python练习三
    python数据分析
    可修改性
    淘宝网的六个质量属性
    Python学习十六
    Python学习十五
    Python学习十四
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/5938646.html
Copyright © 2011-2022 走看看