我正在从spring Boot 2迁移到spring 3的过程中,我遇到了Spring Batch的一个特殊问题。
我的源代码使用这种东西来生成密钥:
@Entity
public class Currency {
@Id
@GeneratedValue
private Long id;
字符串
在我的MySQL数据库中,这些表是自动生成的:
| currency |
| currency_seq |
型
_seq表包含主键的值:
mysql> select * from currency_seq;
+----------+
| next_val |
+----------+
| 51 |
+----------+
1 row in set (0.00 sec)
型
现在使用Spring Batch 5,有些东西已经改变了,值被忽略了:
ConstraintViolationException: could not execute statement [Duplicate entry '1' for key 'currency.PRIMARY'] [insert into currency (currency,currency_change,date,id) values (?,?,?,?)]
型
我不知道该怎么办在这个migration guide。
我用这些 prop :
spring.jpa.hibernate.ddl-auto=update
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.batch.jdbc.initialize-schema=ALWAYS
型
1条答案
按热度按时间of1yzvn41#
使用@SequenceGenerator:
字符串
值大于
1
的allocationSize
不应用于高负载环境,因为它具有非易失性效应。