我在产品和标签之间有很多关系 产品类有一个'tags'集合,按照多对多的映射设置 我正在尝试获取与所有标签(不是任何标签)匹配的产品 以下内容将获取与任何标记匹配的所有产品。
Criteria crit = session.createCriteria(Product.class,"Prdct");
crit.createAlias("Prdct.tags","PT");
crit.add(Restrictions.in("PT.Name",selectedTags));
crit.list();
如何使用条件执行此操作?
答案 0 :(得分:0)
它仅对集合
有用// get the count of tags matching the criteria
DetachedCriteria subquery = DetachedCriteria.For(Product.class)
.add(Expression.eq("id","product.id"))
.createAlias("tags","tag")
.add(Restrictions.in("tag.Name", selectedTags))
.setProjection(Projections.count("PT.Name"));
// get the Products where there all tags match
Criteria crit = session.createCriteria(Product.class,"product")
.add(Subqueries.eq(selectedTags.getCount(), subquery);