【发布时间】:2017-06-21 11:57:39
【问题描述】:
我遇到了这样的错误
具有相同标识符值的不同对象已与会话关联:
我搜索了一下,发现可以用CascadeType.MERGE修复或者重构很多代码来防止同一个数据库对象在会话中变成两个实例。
我无法重构它。
CascadeType.MERGE 有效,但这意味着我必须编写大量代码来解决删除问题,因为之前是 .ALL,对吧?
我搞定了把
@Transactional(propagation = Propagation.REQUIRES_NEW)
在带有@Service 注释的类的方法之上,即查询数据库,它是引发我提到的异常的那个。
我需要帮助来了解这种新的带注释的方法是否会像现在这样给我带来任何未来的头痛。
它是从我正在修复的操作旁边的一些 cron 作业中调用的。
【问题讨论】:
标签: java spring hibernate spring-mvc hibernate-session