您的位置:首页 > 数据库

数据库主键冲突解决

2015-10-22 16:24 393 查看
新接手的工程中,测试人员反应一个简单的保存功能,有时好用,有时就经常不成功,需要重试很多次才行。

我在仔细查看了原代码逻辑,没有发现什么问题,进行了本地测试,也没发现不成功的情况。

通过翻看正式环境的log,发现了有一些id重复的报错,原来是这个搞的。

原来的实体类的id注释是这么写的:

@GenericGenerator(name="generator", strategy="increment")
@Id
@GeneratedValue(generator="generator")
@Column(name = "id", unique = true, nullable = false)
public Long getId() {
return this.id;
}


这样在本地单个tomcat下是没有任何问题的,可放到生产环境的集群中问题就来了。

详细解释可以看:http://articles.e-works.net.cn/pc_server/article101508.htm

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Long getId() {
return this.id;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: