Nun*_*ado 1 java oracle hibernate ora-01722 ejb-3.0
我需要像下面的SQL一样使用IN子句
SELECT * FROM tableA WHERE colA in (1, 2,3)
Run Code Online (Sandbox Code Playgroud)
我如何在EJBQL中执行此操作?
我试过以下,显然失败了:
SELECT tab FROM tableA tab WHERE tab.colA in (:colValues)
Run Code Online (Sandbox Code Playgroud)
然后在java我做了
query.setParameter("colValues","1,2,3")
Run Code Online (Sandbox Code Playgroud)
这给了我以下例外
org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-01722: invalid number
Run Code Online (Sandbox Code Playgroud)
问题是当你:parameter_name在一个sql片段中使用然后调用query. setParamter("parameter_name", values)它时values应该是某种类型的collection.试试这个.
List<Integer> values = new ArrayList<Integer>();
values.add(1);
values.add(2);
values.add(3);
query.setParameter("colValues", values);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2761 次 |
| 最近记录: |