私は次のように3つのエンティティを持っています:
public class EntityA
{
private Long id;
//Getters and setters
}
public class EntityB
{
private Long id;
private EntityA entitya;
//Getters and setters
}
public class EntityC
{
private Long id;
private BigDecimal amount;
private EntityB entityb;
//Getters and setters
}
ここで、EntityAのインスタンスが与えられた場合、EntityCのリストを取得したいと思います。現在、2つのオプションを利用できます。どちらがより最適化されているかわかりません。オプションは次のとおりです。
1.
select c from EntityC c where c.entityb in (select b from EntityB b where b.entitya = :entitya)
2.EntityBに新しいプロパティを追加します
private Set<EntityC> entityCCol;
@OneToMany(mappedBy="entityb")
public Set<EntityC> getEntityCCol()
{
return entityCCol;
}
select b from EntityB a join fetch a.entityCCol b
これらの2つのクエリのどちらがより簡単で、最適化されていますか?