我有一個實體,稱爲Band
與屬性List<Genres> genres
,流派與下列值的ENUM:ALTERNATIVE_ROCK("Alternative Rock"), CLASSIC_ROCK("Classic Rock"), HARD_ROCK("Hard Rock"), HEAVY_METAL("Heavy Metal"),PROGRESSIVE_ROCK("Progressive Rock");
使用枚舉列表在HQL查詢參數
我試圖創建一個使用返回List<Band>
的方法List<Genres>
作爲參數使用HQL,像:
public List<Band> listBandsPerGenres(List<Genres> genres);
但我收到與HQL查詢了一些錯誤,我會嘗試?
以上,我已經嘗試了一些HQL查詢...
Query q = getSession().createQuery("SELECT b FROM Band b JOIN FETCH b.genres g WHERE g IN (?)");
q.setParameter(0, genres);
return q.list();
返回一個錯誤,指出一個ArrayList不能被強制轉換爲枚舉...
或...
"SELECT b FROM Band b JOIN FETCH b.genres g WHERE g.value IN (?)"
返回類似以下錯誤:解引用標量集合元素ENUM
屬性類型映射g,實體樂隊...
@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;
你試過的那些查詢是什麼,以及相應的錯誤是什麼? –
請添加'List'的註釋,重要的是看它是否是'EnumType.String'或默認值。 –
我使用這個ENUM就像ENUMTYPE.STRING –