Jul*_*oud 4 hibernate h2 spring-data-jpa spring-boot
我有一个使用 Spring Data 的 Springboot 应用程序。仅出于测试目的,我使用嵌入式 H2 DB 并通过 data.sql 文件加载一些初始数据。我的实体注释为
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Run Code Online (Sandbox Code Playgroud)
我面临的问题:对于 id 的生成(当我保留某些对象时),不考虑初始数据(在 data.sql 中)中已使用的 id 值。结果会产生冲突,因为 Hibernate 可能会尝试使用已经使用过的 Id。一个解决方案是将 GenerationType 更改为IDENTITY,但我不愿意这样做,因为在生产中我更喜欢 GenerationType.AUTO 。
处理这个问题的最佳实践是什么?
Tim Biegeleisen 似乎已经说服了你: Use IDENTITYwhich 似乎在这两种情况下都有效。
现在我推荐的替代方案是在测试中使用带有 Postgres 的Testcontainers并删除 H2。
| 归档时间: |
|
| 查看次数: |
7121 次 |
| 最近记录: |