【发布时间】:2017-11-06 07:30:27
【问题描述】:
我在这个查询中遇到了一个奇怪的问题。 代码:
em2=getNewEntityManager();
(...)
Query query2 = em2.createNativeQuery("SELECT DISTINCT ID_ZONA FROM VWG_REL_USUARIOS_ZONAS WHERE DNI like '"+dni+"'") ;
List <Long> permisos = query2.getResultList();
(...)
如果 "dni" 等于: "%" 则查询正常,但如果 "dni" 为 "%123456789" 则会出现此错误
javax.persistence.PersistenceException:异常 [EclipseLink-4002] (Eclipse 持久性服务 - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException 内部异常:java.sql.SQLException:sql 字符串不是 dml 语句 错误代码:17129 调用:SELECT DISTINCT ID_ZONA FROM VWG_REL_USUARIOS_ZONAS WHERE DNI like '%XX828747B' 查询:DataReadQuery(sql="SELECT DISTINCT ID_ZONA FROM VWG_REL_USUARIOS_ZONAS WHERE DNI like '%XX828747B'")
如果我在我的 SQL 开发人员中复制上面的确切查询,它就像魔术一样工作。 我已经尝试使用实体和所有东西的“createQuery”,同样的错误。
非常感谢
【问题讨论】:
-
dni是整数还是字符串类型?
-
字符串类型,西班牙DNI格式
标签: java sql jpa persistence dml