4
多くのエンティティが構成され、正常にマッピングされており、すべてが期待通りに機能します。where句を使用して複数のエンティティに参加し、その結果を取得
ここでは、複数のエンティティに参加するカスタムクエリを使用して、それらのwhere句をいくつか定義します。
public interface GiataItemRepository extends JpaRepository<GiataItem, String>{
@Query(value="select g from GiataItem g "
+ "join g.service s "
+ "join s.section se "
+ "join se.secPic sp "
+ "where g.giataId = :giataId "
+ "and se.secScope = 'MAINGALLERY' "
+ "and sp.category = 'MAINGALLERY' "
+ "and sp.seqOrder = 0")
GiataItem findPicture(@Param("giataId") String giataId);
}
SQLでは、GiataItem
の正しい結果が得られます。しかし、私は、service
、section
のような他のすべてのマッピングされたエンティティのための私のwhere節からの制限はありません。
giataIetem.getService
を使用しているときに遅延読み込みを使用していますが、JPAは新しい選択を行い、where句はなくなりました。
どのようにして、私が参加したすべてのエンティティがwhere句とその制限に基づいて構築されるのですか?