2014-08-27 3 views
1

Мой вопрос о критериях для многих-ко-многим - это то, что необходимо для существующего вопроса о stackoverflow. Criteria for many- to-manyСпящий режим Критерии Многие до многих множественных условий

В упомянутом вопросе объекты FOO извлекаются для имени тега, но у меня есть ситуация, когда мне нужен объект FOO, у которого есть теги, связанные с ним. Например, мне нужно получить объект FOO, который имеет как Tag1 = hibernate Tag2 = spring. Любые предложения о том, как это сделать? Thanks

ответ

0

Последовательность ограничений linked with or is called a disjunction. Последовательность ограничений linked with and is called a conjunction.

В спящем, Criteria Conjunction работает как логический AND оператор. Объединение() группирует выражения в одно выражение. Если все условия выполнены, он вернет true в противном случае false.

Так вот он идет:

Criteria criteria = session.createCriteria(Foo.class); 
criteria.createAlias("tags", "tagsAlias"); 

Conjunction conjunction = Restrictions.conjunction(); 
conjunction.add(Restrictions.like("tagsAlias.name", "str1")); 
conjunction.add(Restrictions.like("tagsAlias.name", "str2")); 

criteria.add(conjunction); 

List<Foo> companies = criteria.list(); 
+1

@ user68883 это то, что вы хотите ??. –

+0

Попробует попробовать, но не использует Restrictions.in() вернуть мне все объекты Foo с тегами либо tag1, либо tag2 ?? Я хочу только объекты Foo, которые имеют как tag1, так и tag2. – user68883

+0

@ user68883 Я отредактировал ответ, давая попробовать оба подхода –

Смежные вопросы