Department对象有
private int id;
private String name;
Set <Employee> emps;
Employee对象有
private int id;
private String name;
private Department department;使用hql: from Department d left join fetch d.emps这条语句查出来的数据有重复数据
比如一个department有两个employee的数据时,查出来是两个department和department其下的两个employee,两个department数据是完全一样的,这个是怎么一回事
private int id;
private String name;
Set <Employee> emps;
Employee对象有
private int id;
private String name;
private Department department;使用hql: from Department d left join fetch d.emps这条语句查出来的数据有重复数据
比如一个department有两个employee的数据时,查出来是两个department和department其下的两个employee,两个department数据是完全一样的,这个是怎么一回事
<id name="id">
<generator class="native"></generator>
</id>
<property name="name" /> <set name="emps" inverse="true" >
<key column="depart_id"></key>
<one-to-many class="Employee" />
</set> </class>
</hibernate-mapping>
<hibernate-mapping
package="com.hibernate.entity"> <class name="Employee">
<id name="id" >
<generator class="native"></generator>
</id>
<property name="name" />
<many-to-one name="department" column="depart_id" class="Department" >
</many-to-one>
</class>
</hibernate-mapping>配置的文件的关系是上面的,能指出哪里有问题才导致这样重复的数据出现吗
加个show_sql配置看看sql就知道了,不细讲了。
HQL可以这样写,不会重复了。
select distinct d from Department d left join fetch d.emps
from Department.
看有没重复的~