La requête suivante JPA ne compile pas:Java JPA "Erreur compilation de la requête" quand il utilise un ENUM
@NamedQuery(name = "PSA.findBySourceSystem",
query = "SELECT p FROM PSA p WHERE p.sourceSystem.id = :sourceSystemId")
p.sourceSystem est le ENUM suivant:
public enum SourceSystem {
FIRST(3, "ABC"), SECOND(9, "DEF"), THIRD(17, "GHI");
private int id;
private String code;
...
}
et est mis en correspondance dans la base de PSA classe:
public class PsaBase implements Serializable {
@Column(name = "sourceSystemId")
@Enumerated(EnumType.ORDINAL)
protected SourceSystem sourceSystem;
...
}
La requête compile et fonctionne bien si je re Placez p.sourceSystem.id dans la requête avec quelque chose de plus bénin.
Merci d'avance pour toute aide.
Merci qui a aidé le compiler, mais maintenant si je passe une valeur SourceSystem avec un identifiant de 3 par exemple, il lie toujours 0. L'identifiant est ce que je recherche dans la requête résultante. –
@David: Mis à jour. – axtavt
Ahh! Je vois cela - je pensais juste que le 0 était une valeur par défaut. Merci beaucoup - c'est tout ce dont j'avais besoin. –