J'ai les éléments suivants dans une entité Question:
@NamedQuery(name = "Question.allApproved",
query = "SELECT q FROM Question q WHERE q.status = 'APPROVED'")
et
@Enumerated(EnumType.STRING)
private Status status;
// usual accessors
Je reçois cette exception:
Description de l'exception: Erreur lors de la compilation de la requête [Question.countApproved:
SELECT COUNT(q) FROM Question q WHERE q.status = 'APPROVED'
], ligne 1, colonne 47: expression d'énumération non valide, ne peut pas comparer la valeur d'énumération de type[myCompnay.application.Status]
Avec une valeur non énumérée de tapez[Java.lang.String]
. sur org.Eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy (EntityManagerSetupImpl.Java:501)
Comment puis-je réparer ça?
Je pense que vous devriez utiliser votre (entièrement qualifié) Status
enum au lieu de la valeur littérale, donc quelque chose comme ceci: (en supposant que votre Status
enum est dans com.myexample
paquet)
@NamedQuery(name = "Question.allApproved",
query = "SELECT q
FROM Question q
WHERE q.status = com.myexample.Status.APPROVED").