constante de la valeur d'enum en HQL

J'ai un travail de recherche, ce que j'ai besoin de modifier par filtrage avec la constante de valeur d'enum.

Maintenant, il semble de cette façon:

public static final String venueQuery = 
       "select distinct v from package.Venue v "
        + "<some joins here> "
        + "WHERE v.venueType = package.enums.VenueType.VOUCHER_PROVIDER ";

De la modification des données de cette façon, les causes

org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token

Définition de la colonne est comme ceci:

@Enumerated(EnumType.STRING)
@Column(name = "venue_type")
private VenueType venueType;

Enum définition recherche de cette façon:

public enum VenueType {
    RESTAURANT, BAR, CAFE, FUN_CLUB, VOUCHER_PROVIDER
}

Je suis sûr que d'autres parties de la requête fonctionne très bien, car après l'avoir supprimé, aucune exception n'est levée.

Sont là des astuces pour le réglage de la constante de la valeur d'enum dans la requête HQL?

  • Avez-vous essayé une requête paramétrée? Et en passant une valeur d'enum comme valeur du paramètre?
  • oui, en passant va bien. Mais j'utilise venueQuery pour la base de la requête et de l'étendre avec COMMANDE supplémentaire PAR ou OÙ les cause des chaînes de caractères. Je tiens donc à éviter l'ajout de paramètre pour l'ensemble des méthodes
InformationsquelleAutor joro | 2014-08-04