我有两个实体:
public class Document implements java.io.Serializable {
private Long id;
private String info;
private Set<Tag> tags = new HashSet<Tag>(0);
}
public class Tag implements java.io.Serializable {
private Long id;
private String name;
private Set<Document> documents = new HashSet<Document>(0);
}
文档可能包含多个标记,每个标记可以包含多个项目。
现在我想做一个过滤功能,找出同时包含tag1(id = 1)
和tag2(id = 2)
的所有文档。
我试图使用这些限制:
Criteria criteria = session.createCriteria(Document.class, "doc")
.createAlias("doc.tags", "tag");
List<Document> docList = criteria.add(Restrictions.eq("tag.id", 1))
.add((Restrictions.eq("tag.id", 2)).list();
但他们没有工作,列表是空的。有一个很好的解决方案吗?