2017-02-09 77 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

可能的複製[參數的設定作爲一個列表的IN表達式]的(http://stackoverflow.com/questions/1557085/setting-a-parameter-as-a-in-in-expression) –

+0

不,同樣的例外! – matthias

+0

來自JPA或數據庫的異常來自哪裏? – Chris

回答

0

重複。無論如何,答案是使用SUBSTR(FOO, 0, 1) IN ?1而沒有禁忌。

0

你傳遞一個列表作爲參數,因此,你應該使用setParameterList方法:

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

'javax.persistence.Query'沒有'setParameterList' – matthias