Ich habe ein Unternehmen namens Band
mit einem Attribute List<Genres> genres
, Genre ist eine ENUM mit den folgenden Werten: ALTERNATIVE_ROCK("Alternative Rock"), CLASSIC_ROCK("Classic Rock"), HARD_ROCK("Hard Rock"), HEAVY_METAL("Heavy Metal"),PROGRESSIVE_ROCK("Progressive Rock");
mit Aufzählungsliste als Parameter in HQL Abfrage
Ich versuche, ein Verfahren zu schaffen, die ein List<Band>
einer Verwendung zurückzugibt List<Genres>
als Parameter mit HQL, so etwas wie:
public List<Band> listBandsPerGenres(List<Genres> genres);
Aber ich habe einige Fehler mit HQL-Abfragen empfangen, die ich versucht hatte?
Vor einigen HQL-Abfragen, die ich versucht habe ...
Query q = getSession().createQuery("SELECT b FROM Band b JOIN FETCH b.genres g WHERE g IN (?)");
q.setParameter(0, genres);
return q.list();
einen Fehler zurückgibt sagen, dass eine Arraylist nicht Enum ...
oder
... gegossen werden kann"SELECT b FROM Band b JOIN FETCH b.genres g WHERE g.value IN (?)"
gibt einen Fehler zurück wie: Dereferenz Skalar Sammelelement ENUM
Eigenschaftsgenres mappin g, Einheitsband ...
@Basic(optional=false)
@Enumerated(EnumType.STRING)
@ElementCollection(targetClass=Genres.class)
@CollectionTable(name="banda_generos", join[email protected](name="id_banda", nullable=false))
private List<Genres> genres;
Was waren diese Abfragen, die Sie ausprobiert haben, und welche Fehler gab es? –
Bitte fügen Sie die Anmerkungen der 'Liste ' hinzu, es ist wichtig zu sehen, ob es 'EnumType.String' oder der Standard ist. –
Ich benutze diese ENUM wie ENUMTYPE.STRING –