Hibernate HQL casting: java.lang.La chaîne ne peut pas être lancé à java.lang.Enum
Je reçois ce problème:
java.lang.String cannot be cast to java.lang.Enum
Quand j'ai essayer cette HQL:
...
query = em.createQuery("SELECT object from Entity object where object.column = ?");
query.setParameter(1, "X");
return query.getResultList();
Où en DB le type est un Varchar2(x) avec une vérification de la contrainte et de la variable dans l'entité est définie avec Enum l'aide de la balise @Énumérés(EnumType.STRING):
public enum ColumnEnum {
X, Y;
}
Ne devrait-elle pas être
J'ai essayé aussi, mais le reçu le message d'erreur est le même
query.setParameter(1, TypeEnum.X);
?J'ai essayé aussi, mais le reçu le message d'erreur est le même
OriginalL'auteur Javi Pedrera | 2012-08-07
Vous devez vous connecter pour publier un commentaire.
Si le champ est défini comme un enum, vous devez passer un enum en tant que paramètre:
Et laisser Hibernate utiliser la cartographie pour transformer le paramètre en Chaîne (si
@Enumerated(EnumType.STRING)
est utilise) ou dans un int (si@Enumerated(EnumType.ORDINAL)
est utilisé).OriginalL'auteur JB Nizet
l'aide d'annotation suivante
OU
OriginalL'auteur Mohammod Hossain