1

私はオブジェクトFavouriteを持っています。このオブジェクトは、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オブジェクトを取得したいと思います。助言がありますか?前もって感謝します。

4

1 に答える 1

1

最後に、内部クエリと「EXISTS」演算子を使用して機能しました。(colorは、intidおよびstringnameのオブジェクトです)。

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" )
于 2012-08-31T11:15:17.790 に答える