我在这个查询中遇到了一个奇怪的问题。 代码:更改查询参数时JPA非常奇怪的错误
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 F ROM 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格式 –