java Hibernate在用户具有多个角色时两次获取值
我的用户表如下
public class EUser {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(nullable = false, unique = true)
private String userName;
@Column(nullable = false)
private String password;
@ManyToMany(fetch = FetchType.EAGER)
private List<UserRole> roles;
@OneToOne
private EUser approvedBy;
}
现在我试图从EUser
表中获取所有用户。我不止一次遇到一个拥有多个UserRole
的用户
要获取列表,我使用以下方法
private SessionFactory session;
session.getCurrentSession().createQuery("from EUser").list();
我怎样才能解决这个问题,这样我就不会在列表中多次看到同一个用户
# 1 楼答案
这是由于内部处理联接的方式。一个解决方案就是将列表转储到一个集合中,以消除重复项
# 2 楼答案
UserRole和Euser之间存在多对多依赖关系,因此您肯定会得到重复的条目,因此从DB中获取条目后,您必须在逻辑中对其进行过滤