Seu el siguiente mapeoHibernate HQL consulta utilizando como operador
@Entity
public class User {
private Integer id;
@Id;
private Integer getId() {
return this.id;
}
}
Aviso id es un entero. Ahora necesito esta consulta HQL utilizando como operador
Query query = sessionFactory.getCurrentSession().createQuery("from User u where u.id like :userId");
ATT: ES como operador NOT = (operador de igualdad)
Luego uso
List<User> userList = query.setParameter("userId", userId + "%").list();
pero no lo hace trabajo porque Hibernate se queja IllegalArgumentException que se produjo llamando getter de User.id
Incluso cuando se utiliza
query.setString("userId", userId + "%");
no funciona
¿Qué debo usar para pasar la consulta?
Qué motor de base de datos que está utilizando? –
@Arthur - no responde su pregunta (parece que lo ha descubierto por su cuenta de todos modos) pero solo tengo que preguntar: ¿por qué? Estoy genuinamente interesado, ¿qué caso de uso tienes que requiera una comparación LIKE para lo que parece ser una clave sustituta? – ChssPly76
@ ChssPly76 - Hola Chss. Es un sistema heredado. Es una estructura de árbol donde una id del grupo padre coincide con la id de todos los niños. Por ejemplo, si tengo un ID de grupo = 22100 y quiero recuperar su hijo, al hacer coincidir el prefijo 221, uso >>> como '221%'. –