JPA加入了很多对很多的获取查询

时间:2012-08-21 09:05:54

标签: hibernate jpa join many-to-many

我有一个对象收藏夹。此对象与Colors有多对多的连接。让我们说一些最爱有很多颜色,2-3等。当我搜索喜欢的喜欢:

SELECT fav FROM Favourite fav join fetch fav.colors as cl WHERE fav.name = "blabla" .

生成的对象包含与此收藏夹相关的所有颜色。我的问题是当我想搜索具有某种颜色的收藏夹时。例如:

SELECT fav FROM Favourite fav join fetch fav.colors as cl WHERE cl.name = "red" 

然后生成的对象仅包含红色。我想得到包含“红色”颜色的fav对象,但也显示所有相关颜色。有什么建议?提前谢谢。

1 个答案:

答案 0 :(得分:1)

最后,它使用内部查询和“EXISTS”运算符。 (color是int id和string name的对象。)

SELECT fav FROM Favourite fav join fetch fav.colors as cl WHERE EXISTS ( SELECT fav2 FROM Favourite fav2 join fetch fav2.colors as cl2 WHERE fav2.id = fav.id AND cl2.name = "red" )