Spring Data findOne查有manyToMany情况

阅读更多
遇到个奇葩问题:
  • User和Role是多对多关系...查询到一个User...然后getRoles...集合中出现18条一模一样的Role实例(此时数据库中间表中此User只有一个角色)...

@ManyToMany(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.MERGE })
@JoinTable(
name = "t_sysmgt_user_role", 
joinColumns = { @JoinColumn(name = "user_id") }, 
inverseJoinColumns = { @JoinColumn(name = "role_id") }
)
private List roles = new ArrayList();

  • 1.UserDao 实现了JpaRepository(Spring Data)
  • 2.Hibernate4.3.5
  • 3.Spring Data1.10.1


用的JpaRepository中的findOne就会有这个问题, 然后自己写了个查询方法就OK了
@Query("select u from User u where u.id=?")

User findById(Long userId);

你可能感兴趣的:(Spring Data findOne查有manyToMany情况)