JPA GenerationType.AUTO忽略了Hibernate @SequenceGenerator allocationSize

时间:2013-10-09 02:52:40

标签: hibernate jpa

我们正在使用带有JPA注释的Hibernate,配置如下所示。当我们使用GenerationType.AUTO时,将忽略allocationSize,并且hibernate日志会显示每个插入的sequence.nextval。

将其更改为GenerationType.SEQUENCE,如下所示可以正常工作。但是这在其他数据库中是不可移植的。这是一个错误吗?或者我们需要设置其他一些配置吗?

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MYOBJ_SEQ")
@SequenceGenerator(name = "MYOBJ_SEQ", sequenceName = "MYOBJ_SEQ", allocationSize = 100)
@Column(name = "MYOBJ_PK", length = 11)
private Integer id;

1 个答案:

答案 0 :(得分:0)

生成标识符最灵活,最便携的方法是使用数据库表,例如:

@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "id_generator")
@TableGenerator(allocationSize = 100, name = "id_generator")
@Column(name = "MYOBJ_PK", length = 11)
private Integer id;