无法将Hibernate命名参数插入到SQL查询中:
String values="'a', 'b', 'c', 'd'";
SQLQuery query = getSession().createSQLQuery("SELECT * FROM data WHERE value IN (:values)");
query.setParameter("values", values);
List<Object[]> data = query.list(); // returns data: size = 0 ...
Run Code Online (Sandbox Code Playgroud)
但是,如果我写的话:
String values="'a', 'b', 'c', 'd'";
SQLQuery query = getSession().createSQLQuery("SELECT * FROM data WHERE value IN (" + values + ")");
List<Object[]> data = query.list(); // returns data: size = 15 ...
Run Code Online (Sandbox Code Playgroud)
第二种方式返回数据而不是第一种方式.
在SQL中使用命名参数我做错了什么?
Pri*_*esh 10
该values变量应该是一个列表或一个字符串数组,而不是字符串,作为参数处于"IN"子句.所以,将代码更改为以下代码,它应该工作:
String[] values= {"a", "b", "c", "d"};
SQLQuery query = getSession().createSQLQuery("SELECT * FROM data WHERE value IN (:values)");
query.setParameterList("values", values);
List<Object[]> data = query.list();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10475 次 |
| 最近记录: |