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獲得的完整實例一樣


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM