0

我有一个暴露的网络服务,它将一些数据保存到某个表中。我正在使用 sqlserver 数据库。多个系统可以同时使用 Web 服务。

问题是两个系统都在检查记录的存在并报假,同时插入一条新记录,导致重复键导致并发异常。

我正在使用休眠,并且调用 Web 服务的系统也提供主键。

我可以在这里制作方法synchronized吗?会有缺点还是有什么优雅的方法可以做到这一点?

谢谢!

4

1 回答 1

0

我不建议使用synchronised甚至使用 Java/Hibernate 来避免重复;如果您必须扩展现有应用程序或添加另一个修改数据的应用程序,您仍然会遇到此问题。

最好的方法是在表上设置唯一约束以避免重复;这允许您在插入重复项时处理唯一约束违规并做任何您想做的事情。

于 2013-03-28T11:00:20.740 回答