У меня есть два объекта, которые выглядят примерно так:
public class Foo{
List<Bar> bars;
String name;
}
public class Bar {
String value;
}
Я хотел бы использовать Hibernate Criteria API, чтобы сделать запрос OR, который включает оба свойства Foo
. В частности, я хочу выбрать все Foos
, которые имеют name
"somevalue" ИЛИ имеют Bar
в своей коллекции bars
, которая имеет value
"anothervalue".
Я знаю, как сделать это самостоятельно:
createCriteria(Foo.class).add(Restrictions.eq("name","somevalue"));
and
createCriteria(Foo.class).createCriteria("bars").add(Restrictions.eq("value","anothervalue"));
(взято из здесь )
но когда я пытаюсь поместить их по обе стороны от оператора Restrictions.or (), это дает мне ошибку компиляции. Итак, мой вопрос: возможно ли это с использованием критериев или мне придется использовать HQL или обычный SQL?