У меня есть три объекта следующим образом:
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. В настоящее время у меня есть два варианта. Я не знаю, какой из них более оптимизирован. Возможные варианты:
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
Какой из этих двух запросов проще и оптимизирован?