1 対多の関係にある 2 つのクラスと、少し奇妙な HQL クエリがあります。すでに投稿されたいくつかの質問を読んだとしても、私には明確ではないようです。
Class Department{
@OneToMany(fetch=FetchType.EAGER, mappedBy="department")
Set<Employee> employees;
}
Class Employee{
@ManyToOne
@JoinColumn(name="id_department")
Department department;
}
次のクエリを使用すると、Department オブジェクトが重複します。
session.createQuery("select dep from Department as dep left join dep.employees");
したがって、私は明確に使用する必要があります:
session.createQuery("select distinct dep from Department as dep left join dep.employees");
この動作は予期されたものですか? SQLと比較して、これは珍しいと思います。