0

Entity 1 -> SubEntity n One-To-Many-relation を取得しました。

これが、「One-To-Many-Collection」に指定された SubEntity を含むエンティティを検索する最も効率的な方法であるかどうかを確認したいと思います。それは機能しますが、SubEntities を取得するために参加する必要がありますか、またはすべての SubEntities をロードする必要がない場合、より軽量なソリューションがありますか? (FetchMode = レイジー)

public Entity getEntityBySubEntity(SubEntity subEntity) { 
     List<Entity> result = (List<Entity>)getHibernateTemplate.findByNamedParam(
         "From Entity as e left join fetch e.subEntities as sub where sub.id = :id","id",subEntity.getId()); 
     if (!result.isEmpty()) { 
          return result.get(0);
     } else {
          throw new NoResultException();
     }
 }

(ちなみに、結果は常に 1 つだけのはずです...)

前もってthx、

キャブ

4

1 に答える 1

0

クエリは問題ありませんが、subEntities を不必要にフェッチします。fetch キーワードを削除するだけです。また、サブエンティティを null にして条件を満たすことはできないため、内部結合は問題ありません。

select e from Entity e inner join e.subEntities sub where sub.id = :id
于 2012-11-02T07:33:23.343 に答える