我有以下课程:
public class Folder{
private Set<Documents> documents;
private Set<Clip> clips;
}
public class Clip{
private Owner owner;
}
我需要找到黄色 folders 中的 documents 列表,其中 clips 的 clips 是 clips ,其名称类似于搜索字符串 . 像这样的东西(不工作):
Criteria criteria = session.createCriteria(Document.class);
criteria.add(Restrictions.eq("isNice", 1));
criteria.createCriteria("folder").add(Restrictions.eq("isYellow", 1));
criteria.createCriteria("clips");
criteria.createCriteria("owner").add(Restrictions.like("name", search));
List documents = criteria.list();
如何为HashSet创建条件?要么
-
也许我应该使用hql查询
-
也许我只能编辑
List documents
,删除不良条目? -
甚至可以用标准吗?
-
如果不是另一种方式?
编辑 . 我发现了这段代码:
List cats = sess.createCriteria(Cat.class)
.createCriteria("kittens", "kt")
.add( Restrictions.eq("name", "F%") )
.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)
.list();
Iterator iter = cats.iterator();
while ( iter.hasNext() ) {
Map map = (Map) iter.next();
Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);
Cat kitten = (Cat) map.get("kt");
}
但我无法理解它究竟是做什么的 . 什么结果变形金刚?
请,任何建议或提示都会有所帮助!谢谢!
1 回答
这需要剪辑/文件夹关联是双向的(即你需要在
Clip
中有一个folder
字段) . 如果不是这样的话,可以像这样创建分离的标准: