一对多关系的 JPA IN 子句

JPA IN clause for one to many relationship

我有以下 jpa 实体:

Music_playlist[

    Integer music_id;

    Integer playlist_id;

    List<Genre> genres;
]

Genre[
    Integer genre_id;
]

我想知道我是否可以进行命名查询来检索 music_playlist 实体,这些实体的流派属性包含具有 [=16 的流派对象=]genre_id 等于命名参数。像这样:

SELECT mp FROM music_playlist WHERE :genreId in mp.genres.genre_id

你可以使用任何一个

 FROM MusicPlaylist mp WHERE 'Rock' = ANY (SELECT g.genreId FROM mp.genres g)

另一种解决方案可能是:

SELECT mp FROM music_playlist mp JOIN mp.genres g WHERE :genreId = g.genreId