从前端调用后端的数据更新,出现问题。前端从后端获取数据记录后,进行修改,然后传回后端更新。使用的是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转换为字符串,然后再转回去,仍然不行。关键是,在测试单元不出问题。经过前端就出问题。
你可以把报错内容发给我看看
特别奇怪的是,将前端传过来的数据,变字符串,然后变为SysUser类,在测试单元中调controller层的update。就不出问题!!!