我尝试在Bypass GeneratedValue in Hibernate (merge data not in db?)中使用自定义id-generator,并且在使用Postgres DB时工作正常。我的代码等于示例中的代码。 但是在使用H2内存数据库运行测试时我遇到了问题,即id不是自动生成的。
没有自定义生成器
@Column(name = "id", nullable = false)
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
生成的创建表脚本
create table db.schema.entity (id bigserial not null...
使用自定义生成器
@Column(name = "id", nullable = false)
@Id
@GeneratedValue(generator = "idGenerator", strategy = GenerationType.IDENTITY)
@GenericGenerator(name="idGenerator", strategy = "...UseIdOrGenerate")
private Long id;
生成的创建表脚本
create table db.schema.entity (id int8 not null...
因此测试不起作用。
答案 0 :(得分:0)
通过更改@Column
解决@Column(name = "id", nullable = false, columnDefinition = "bigserial")