ho un'entità chiamata Band
con un attributo List<Genres> genres
, Generi è un ENUM con i seguenti valori: ALTERNATIVE_ROCK("Alternative Rock"), CLASSIC_ROCK("Classic Rock"), HARD_ROCK("Hard Rock"), HEAVY_METAL("Heavy Metal"),PROGRESSIVE_ROCK("Progressive Rock");
utilizzando l'elenco enum come parametro nella query HQL
Sto cercando di creare un metodo che restituisce un List<Band>
utilizzando un List<Genres>
come parametro utilizzando HQL, qualcosa come:
public List<Band> listBandsPerGenres(List<Genres> genres);
ma sto ricevendo alcuni errori con query HQL che avevo provato?
Sopra alcune query HQL che ho provato ...
Query q = getSession().createQuery("SELECT b FROM Band b JOIN FETCH b.genres g WHERE g IN (?)");
q.setParameter(0, genres);
return q.list();
restituisce un errore che dice che un ArrayList non può essere lanciato a Enum ...
o ...
"SELECT b FROM Band b JOIN FETCH b.genres g WHERE g.value IN (?)"
restituisce un errore del tipo: dereference scalare elemento di raccolta ENUM
generi di proprietà mappin g, entità Banda ...
@Basic(optional=false)
@Enumerated(EnumType.STRING)
@ElementCollection(targetClass=Genres.class)
@CollectionTable(name="banda_generos", [email protected](name="id_banda", nullable=false))
private List<Genres> genres;
quali erano le query che hai provato e quali erano gli errori corrispondenti? –
Si prega di aggiungere le annotazioni dell ''Elenco', è importante vedere se è 'EnumType.String' o il valore predefinito. –
sto usando questo ENUM come ENUMTYPE.STRING –