2017-02-09 3 views
0

создать запрос, как это в JPA (EclipseLink)JPA IN-параметров

Query selectQuery = ... and SUBSTR(FOO, 0, 1) IN (?1) 

или

Query selectQuery = ... and SUBSTR(FOO, 0, 1) IN ?1 

я установить параметр, как это:

selectQuery.setParameter(1, Arrays.asList(new String[] { "T" })); 

Однако это сообщив мне invalid column type

Когда я изменить мой запрос к этому:

Query selectQuery = ... and SUBSTR(FOO, 0, 1) IN ('T') 

это работает, как ожидалось.

Я пропустил что-нибудь?

+0

Возможный дубликат [Установка параметра в виде списка для в выражении] (http://stackoverflow.com/questions/1557085/setting-a-parameter-as-a-list-for-an-in-expression) –

+0

Нет, это же исключение! – matthias

+0

Где исключение происходит из JPA или базы данных? – Chris

ответ

0

Duplicate. Во всяком случае, ответ будет заключаться в том, чтобы использовать SUBSTR(FOO, 0, 1) IN ?1 без скобок.

0

Вы передаете список в качестве параметра, таким образом, вы должны использовать метод setParameterList:

selectQuery.setParameterList(1, Arrays.asList(new String[] { "T" })); 
+0

'javax.persistence.Query' не имеет' setParameterList' – matthias