Spring JPA Data Запрос «ИЛИ»

Я использую Spring Data JPA и пытаюсь добавить запрос в свой репозиторий. Я пытался просто построить запрос без аннотации @Query, например:

List findByTypeAndStateOrStateAndStartDateBetween(Type type, State s, State s2, Date startDate, Date endDate);

Моя цель — построить такой запрос:

select * from item where type = ? and (state = ? or state = ?) and start_date between ? and ?

Моя проблема связана с предложением OR. Есть ли способ убедиться, что скобки есть? В противном случае логика неверна. Примеры, которые я нашел здесь : http://static.springsource.org/spring-data/data-jpa/docs/1.0.0.M1/reference/html/#jpa.query-methods.query-creation

, не содержат предложений or с более чем 1 столбцом.

Кроме того, есть ли способ передать список объектов. Например, если бы я хотел найти элементы с 3 состояниями, мне пришлось бы создать другой запрос, который не очень хорошо масштабируется.

Спасибо.

РЕДАКТИРОВАТЬ:

Я понял, как передать список состояний, используя нотацию @Query. Вы делаете это так:

@Query("FROM item i WHERE i.type = ?1 AND i.state IN (?2)")

Затем вы можете просто передать список методу в качестве второго параметра. До сих пор не знаю, как это сделать без использования нотации @Query.

17
задан devo 24 April 2012 в 18:32
поделиться