У меня есть следующие классы:
public class Folder{
private Set<Documents> documents;
private Set<Clip> clips;
}
public class Clip{
private Owner owner;
}
Мне нужно найти список красивых документов в желтых папках, которые имеют владельцев из клипов в этих папках , чьи имена подобны строке поиска.Примерно так (не работает):
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
, удалив неправильные записи? - Возможно ли это даже с критериями?*
- Если нет, то как по другому?
edit.Я нашел этот фрагмент кода:
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");
}
, но я не могу понять, что именно он делает.Каков результатTransformer?
Пожалуйста, любые советы или подсказки очень помогли бы!Спасибо!