2013-10-09 25 views
1

我们使用Hibernate和JPA注释,配置如下所示。当我们使用GenerationType.AUTO时,忽略allocationSize,休眠日志显示每个insert的sequence.nextval。Hibernate @SequenceGenerator分配大小由JPA忽略GenerationType.AUTO

将其更改为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; 

回答

0

最灵活和可移植的方式产生标识符是使用一个数据库表,例如:

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