用于Hibernate的ID生成器与Oracle(Spring MVC)

时间:2015-09-14 18:01:44

标签: java spring oracle hibernate spring-mvc

我正在尝试在Hibernate中为Oracle DB注释ID生成器, 到目前为止我试过这个:

a) @GeneratedValue(strategy=GenerationType.AUTO)   

当我尝试持久化表

时,id不能为null
b) @GeneratedValue(strategy=GenerationType.SEQUENCE) 

表示Oracle不支持序列(或类似的东西)

c) @GeneratedValue(strategy=GenerationType.IDENTITY) 

当我尝试持久化表时,id不能为null。

如何在Hibernate中为Oracle DB注释ID生成器?

1 个答案:

答案 0 :(得分:0)

您可以将生成策略添加为序列并将序列生成器添加到您的实体:

@SequenceGenerator(name = "GEN_TABLE_NAME", sequenceName = "SEQ_TABLE_NAME")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "GEN_TABLE_NAME")
private Long id;

如果您没有使用hbm2dll.auto设置,则需要在oracle数据库中创建序列,并将其名称指定为" sequenceName"属性。