![](/img/trans.png)
[英]Spring, JPA, and Hibernate - how to increment a counter without concurrency issues
[英]hibernate and sqlserver concurrency issues?
我公开了一个Web服务,它将一些数据保存到某个表中。 我正在使用sqlserver数据库。 多个系统可以同时使用Web服务。
问题是两个系统正在检查记录的存在并报告错误,同时插入一个新记录,这由于键重复而导致并发异常。
我正在使用休眠模式,无论哪个系统调用webservice都提供主键。
在这里我可以使方法synchronized
吗? 会有缺点吗?或者有任何优雅的方法可以做到这一点?
谢谢!
我不建议您使用synchronised
,甚至不使用Java / Hibernate来避免重复。 如果必须扩展现有应用程序或添加另一个修改数据的应用程序,则仍然会出现此问题。
最好的方法是在表上设置唯一约束,以避免重复。 这样,当您插入重复项并执行您希望执行的任何操作时,就可以处理唯一性约束冲突。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.