首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate,高并发性问题

Hibernate,高并发性问题
EN

Stack Overflow用户
提问于 2012-07-12 08:03:50
回答 2查看 478关注 0票数 1

我有以下问题。有一个事务,如下所示。

交易:

  1. 查看数据库,如果有参数可用的对象。
  2. 如果没有,则创建此对象,否则,更改该对象并进行更新。

假设我们有两个并行执行的事务(T1和T2)。

T1查看数据库,没有对象。一毫秒后,T2查看了数据库,也没有对象。

T1将对象保存到数据库中,并生成T2。

我们在数据库中有两个对象,而不是一个。

我能解决这个问题吗?

我用的是: Hibernate + Spring + Tomcat

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-12 08:06:17

对于部署在一台服务器上的应用程序,解决方案非常简单。给函数“同步”属性。这样你就能确定这个问题不会发生。

但是,如果您在多台服务器上运行此应用程序,则可能会出现此问题。在这种情况下,您应该考虑一种集中式数据库访问机制。

这也可以使用sql server的特性来完成。在数据库服务器上创建一个存储过程,并给它一个适当的隔离级别。你可以在这里读到:set isolation level for postgresql stored procedures

票数 2
EN

Stack Overflow用户

发布于 2012-07-12 08:07:20

如果将两个相同的对象插入到数据库中,则会出现主键冲突,因此您的一个事务将无法写入并回滚。只需通过在对象属性上放置相关约束来确保对象必须是唯一的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11447483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档