• 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获得的完整实例一样

  • 相关阅读:
    添加coreseek中文分词
    linux 常用处理命令
    rewrite nginx
    判断浏览器类型
    Cookie 读写类
    Php 异常处理 exception
    C++实验:时间和日期类
    数据结构:删除链表元素
    数据结构-循环单链表
    TOJ-5395 大于中值的边界元素
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/5938646.html
Copyright © 2020-2023  润新知