问题遇到的现象和发生背景
从前端调用后端的数据更新,出现问题。前端从后端获取数据记录后,进行修改,然后传回后端更新。使用的是spring dada jpa。可是在测试单元进行操作,不会出现该问题,即便在测试单元用JSON将查询出的数据转成字符串,然后再转会去,也不会出问题。通过前端就不行。比较数据也看不出区别。
问题相关代码,请勿粘贴截图
controller层:
@PostMapping("update")
public int update(@RequestBody SysUser sysUser) {
return sysUserService.update(sysUser);
}
ServiceImpl层:
@Override
public int update(SysUser sysUser) {
SysUser newUser = sysUserDao.save(sysUser);
}
运行结果及报错内容
错误如下:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.orm.jpa.JpaSystemException: Found shared references to a collection: com.qingning.emss.manager.entity.SysUser.roles; nested exception is org.hibernate.HibernateException: Found shared references to a collection: com.qingning.emss.manager.entity.SysUser.roles] with root cause
我的解答思路和尝试过的方法
尝试用JSON转换为字符串,然后再转回去,仍然不行。关键是,在测试单元不出问题。经过前端就出问题。