我有以下问题。 有一个交易,以下是。
事务:
假设我们有两个并行执行的事务(T1和T2)。
T1查看数据库,没有对象。 一毫秒后,T2查看数据库,也没有对象。
T1将对象保存到数据库中,它也会生成T2。
我们在数据库中有两个对象而不是一个。
我可以解决这个问题吗?
我正在使用:Hibernate + Spring + Tomcat
谢谢。
答案 0 :(得分:2)
对于部署在一台服务器上的应用程序,解决方案非常简单。给功能"同步"属性。这样你就可以确定这个问题不会发生。
如果您在多个服务器上运行此应用程序,则可能会出现此问题。在这种情况下,您应该考虑一种集中式数据库访问机制。
这也可以使用sql server的功能来完成。在数据库服务器上创建存储过程并为其提供适当的隔离级别。您可以在此处阅读:set isolation level for postgresql stored procedures
答案 1 :(得分:0)