Seu le mappage suivantHibernate HQL requête en utilisant comme opérateur
@Entity
public class User {
private Integer id;
@Id;
private Integer getId() {
return this.id;
}
}
id Avis est un nombre entier. Maintenant, j'ai besoin de cette requête HQL en utilisant comme opérateur
Query query = sessionFactory.getCurrentSession().createQuery("from User u where u.id like :userId");
ATT: IL EST comme opérateur NOT = (opérateur égal)
Puis-je utiliser
List<User> userList = query.setParameter("userId", userId + "%").list();
mais ne fonctionne parce que Hibernate se plaint IllegalArgumentException s'est produite appel getter de User.id
Même quand j'utilise
query.setString("userId", userId + "%");
Il ne fonctionne pas
Que dois-je utiliser pour transmettre la requête?
Quel est le moteur base de données que vous utilisez? –
@ Arthur - ne pas répondre à votre question (semble que vous avez compris par vous-même de toute façon) mais je dois juste demander - pourquoi? Je suis vraiment intéressé - quel cas d'utilisation avez-vous qui exige LIKE comparaison pour ce qui semble être une clé de substitution? – ChssPly76
@ ChssPly76 - Salut Chss. C'est un système hérité. C'est une structure arborescente dans laquelle un identifiant de groupe parent correspond à l'identifiant de tous les enfants. Par exemple, si j'ai un id de groupe = 22100 et que je veux récupérer ses enfants, en utilisant le préfixe 221, j'utilise >>> comme '221%'. –