я использую весеннюю загрузку 2.1 с пружинными данными jpa и hibernate
@Entity
public class Factories{
@Id
@SequenceGenerator(name = "factories_id_seq", sequenceName = "factories_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "factories_id_seq")
private Integer id;
@OneToMany(mappedBy = "factory", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
private List<Machines> machines = new ArrayList<>();
@ElementCollection(fetch = FetchType.LAZY)
private Set<String> emails = new HashSet<>();
}
В моей машинной сущности у меня есть метод equals и hashCode.
Запрос выполнен
SELECT distinct f from Factories f "
+ "LEFT JOIN FETCH f.machines "
+ "Left JOIN FETCH f.emails "
+ "Left JOIN FETCH f.cities "
+ "where f.id=:id
Я пробовал с отчетливым и без
Моя фабрика с идентификатором 1
есть 3 машины и 3 электронных письма
Вместо загрузки фабрики с 3 машинами и 3 электронными письмами, я получаю 9 машин. В базе данных всего 3.
Это похоже на декартово произведение.
Любая идея