[英]Hibernate and Oracle: Primary Key constraint violation
在我的Web应用程序中,我具有在相同实体(例如商品,客户...等)上工作的多个计划服务。 如果我一次运行一个服务没有问题,但是当我运行两个服务时,由于违反了主键唯一性约束,我会收到错误消息。 作为主键,我使用生成的Long值:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
public Long getId() {
return id;
}
每个服务都从txt文件读取数据,创建其实体,每20个实体在休眠会话后执行一次刷新操作,然后执行清除操作。 仅在服务执行结束时才提交会话。
我该如何解决?
Oracle仅支持生成密钥的序列。 向您的数据库添加一个序列:
CREATE SEQUENCE ARTICLE_SEQ;
将注释更改为:
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="articleSequence")
@SequenceGenerator(name="articleSequence", sequenceName="ARTICLE_SEQ",allocationSize=1)
最好为每个表/类型使用单独的序列。
在DB中创建序列,并像@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_NAME")
一样使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.