Hibernate createCriteria返回错误的列表大小与HQL列表

Hibernate createCriteria返回错误的列表大小与HQL列表,hibernate,Hibernate,在我的用户表中,我有两个用户 尝试使用HQL查询选择所有用户时,如下所示: getCurrentSession().createQuery("From User").list(); getCurrentSession().createCriteria(User.class).list(); 它返回两个元素,即右侧 但使用createCriteria时,如下所示: getCurrentSession().createQuery("From User").list(); getCurrentS

在我的用户表中,我有两个用户 尝试使用HQL查询选择所有用户时,如下所示:

getCurrentSession().createQuery("From User").list();
getCurrentSession().createCriteria(User.class).list();
它返回两个元素,即右侧

但使用createCriteria时,如下所示:

getCurrentSession().createQuery("From User").list();
getCurrentSession().createCriteria(User.class).list();
它返回36个元素(两个元素重复

你知道为什么我在createCriteria中会有这样的行为吗,这与hibernate关系有关吗?因为在用户域中,我与角色域有多个关系,它与会话工厂、hibrenate版本或hibernate配置有关吗

关系:

@ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "user_role", joinColumns = { @JoinColumn(name = "user_id") }, inverseJoinColumns = { @JoinColumn(name = "role_id") })
    private Set<Role> roles = new HashSet<Role>(0);
@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(name=“user\u role”,joinColumns={@JoinColumn(name=“user\u id”)},inverseJoinColumns={@JoinColumn(name=“role\u id”)})
私有集角色=新哈希集(0);

我很困惑,请指教,谢谢

您与急切抓取有多对多关系。条件查询将转换为包含联接的SELECT,因此在结果中,每个用户都有许多行

要删除重复项,请将所有结果添加到哈希集,或使用DistincTrotentyResultTransformer