Los parámetros con nombre son mejores que los parámetros posicionales, debemos tener cuidado al mirar el orden/posición, mientras que el nombre es fácil.
designada:
Query query = session.createQuery("select count(*) from User"+" where userName=:userName and passWord=:passWord");
query.setString("userName", userName);
query.setString("passWord", passWord);
posicional:
Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId = ? and e.empDepartment = ?");
query.setParameter(1, employeId);
query.setParameter(2, empDepartment);
¿Por qué ha sido esto cambiado de todos modos? Acabo de pasar una hora averiguando por qué 'IllegalArgumentException en la clase: org.ase.mip.persistence.entities.BaseEntityImpl, getter método de propiedad: id (BasicPropertyAccessor.java:186))' estaba sucediendo. Llamé a 'setParameter' en lugar de' setParameterList'. DOH! – opncow