代码就不贴,十分简单。我简述一下:
有三个实体 A B C ,他们之间没有任何关联关系,我在代码中。分别使用三个的Repository的findByid的方法取出来。A B C 分别改了值。然后代码执行到了CRepository.save(C)就return 返回了。奇怪的是,控制台同时有 A B C的update语句打印出来。也就是说C的save触发到了A B的保存。我初步分析排除了级联保存。大家知道的可以解答一下吗?对JPA的事务机制还不是特别理解。
如果没有记错,jpa好像是有在事务中自动执行sql的,就是说你从数据库中查出来的数据封装成的对象,直接修改对象属性,事务提交前jpa自动update,可以去查查,解决方法也简单,深度clone一个新的对象出来就行