java – 将列表参数设置为本机查询
发布时间:2020-05-24 12:06:09 所属栏目:Java 来源:互联网
导读:我想将参数设置为本机查询, javax.persistence.EntityManager.createNativeQuery 这样的事情 Query query = em.createNativeQuery(SELECT * FROM TABLE_A a WHERE a.name IN ?);ListString paramList = new ArrayListString();
|
我想将参数设置为本机查询, javax.persistence.EntityManager.createNativeQuery 这样的事情 Query query = em.createNativeQuery("SELECT * FROM TABLE_A a WHERE a.name IN ?");
List<String> paramList = new ArrayList<String>();
paramList.add("firstValue");
paramList.add("secondValue");
query.setParameter(1,paramList);
尝试此查询会导致异常: Caused by: org.eclipse.persistence.exceptions.DatabaseException:
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near
'_binary'?? sr java.util.ArrayListx????a? I sizexp w t
f' at line 1
Error Code: 1064
Call: SELECT * FROM Client a WHERE a.name IN ?
bind => [[firstValue,secondValue]]
Query: ReadAllQuery(referenceClass=TABLE_A sql="SELECT * FROM TABLE_A a WHERE a.name IN ?")
是否可以为本机查询设置列表参数,而不是强制转换为字符串并将其附加到sql查询? 附:我使用EclipseLink 2.5.0和MySQL服务器5.6.13 谢谢 解决方法我相信你只能将列表参数设置为JPQL查询,而不是本机查询.使用JPQL,或使用列表动态构造SQL. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
