我使用Spring 2来创建微服务。我有一个方案来拯救一个实体。在实体Id列中,我添加了如下所示
@Id
@GeneratedValue(Strategy=GenerationType.Auto, generator="increment")
@GenericGenerator(name="increment", strategy="increment")
@Column(name="Id", insertable=false)
private Integer id;上面的工作,有时会抛出主键约束违反异常。但这是不一致的。我将它作为两个具有不同端口的实例运行。
我得到的错误违反了唯一的约束:
ConstraintViolationException:无法执行语句;约束primary_key_cons;嵌套异常为ConstraintViolationException。
我唯一的选择就是把策略改为顺序。
发布于 2021-08-17 08:24:32
你手动插入数据了吗?也许hibernate正在生成id值,这些id值已经存在于db中。如果可以,只需清除该表并再次测试它。
发布于 2021-08-28 12:25:04
不要使用带有策略增量的泛型生成器。不建议在集群中使用。
增量生成长、短或int类型的标识符,只有在没有其他进程将数据插入到同一表中时,这些标识符才是唯一的。不要在群集中使用。
想了解更多信息- 这里
使用GenerationType.SEQUENCE和板条箱一个SequenceGenerator。
例如,
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "YourSequenceGenerator")
@SequenceGenerator(sequenceName = "YourSequence", name = "YourSequenceGenerator", allocationSize = 1)
private Integer id;https://stackoverflow.com/questions/68813912
复制相似问题