Ограничения EntityQuery в JBoss Seam

Можно ли создать условия ограничения для Seam EntityQuery, которые объединяются по ИЛИ вместо того, чтобы всегда объединяться вместе?


person Gordon Ramsay    schedule 22.03.2010    source источник


Ответы (2)


Взгляните на setRestrictionLogicOperator (оператор). Оператор может быть «и» или «или». Это будет "и" или "или" все заявления об ограничениях.

person Petar Minchev    schedule 23.03.2010

Имейте в виду, что вы также можете писать все в private static final String EJBQL, EL также интерпретируется здесь, поэтому вы можете комбинировать OR и AND следующим образом:

select c from Cat c where c.gender=#{cat.gender} and ( c.name=#{cat.name} or c.color=#{cat.color} )

Вы даже можете избежать таких проблем с нулевыми значениями: where c.name=#{empty cat.name ? "defaultName" : cat.name }

person Simon Lebettre    schedule 23.03.2010
comment
Однако это не даст вам преимущества, если вы будете учитывать только те ограничения, которые не зависят от пустых значений. - person Michael Piefel; 29.04.2011