Criteria API我认为什么是更好的使用模式?

时间:2015-09-17 10:35:39

标签: hibernate java-ee jpa entity criteria-api

我在实体上有@ManyToMany或@OneToMany关联,我正在考虑更好的用例:

  1. 对象中的每个对象使用迭代 并执行 criteriaBuilder.isMember(object,collection)

  2. 使用 root.join(集合)而不是 joinedRoot.in(对象)

  3. 这里是代码示例:

     List<Predicate> orPredicates = new ArrayList<>();
    
     for(Industry industry : industries) {
        orPredicates.add( criteriaBuilder.isMember(industry, provider.get(Provider_.industries)) );
     }
    
     predicates.add( criteriaBuilder.or(orPredicates.toArray(new Predicate[] { })) ); 
    

    和第二种可能的解决方案

     Join<Provider, Industry> industryRoot = provider.join(Provider_.industries)
     industryRoot.in(industries); 
     // here i need also to add .distinct(true) on select 
    

    我考虑.isMember()函数是否通过集合属性与关联实体进行圆顶连接?

0 个答案:

没有答案