如果您喜欢JPA Criteria,这是为您提供的解决方案:
List<Integer> myTagsIds = new ArrayList<Integer> ();myTagsIds.add(1);myTagsIds.add(2);CriteriaBuilder cb = em.getCriteriaBuilder();CriteriaQuery<BlogPost> cq = cb.createQuery(BlogPost.class);Root<BlogPost> blogPost = cq.from(BlogPost.class);SetJoin<BlogPost, Tag> tags = blogPost.join(BlogPost_.tags);Predicate predicate = tags.get(Tag_.id).in(myTagsIds);cq.distinct(true);cq.where(predicate);TypedQuery<BlogPost> tq = em.createQuery(cq);return tq.getResultList();
此解决方案利用规范的metaModel类
BlogPost_,
Tag_并且应该由您的JPA实现生成。



