H2内存数据库和自定义@GeGeneGenerator策略

时间:2015-10-01 09:08:16

标签: java hibernate jpa h2

我尝试在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...

因此测试不起作用。

1 个答案:

答案 0 :(得分:0)

通过更改@Column

解决
@Column(name = "id", nullable = false, columnDefinition = "bigserial")