我正在使用带有JPA 2.1的Hibernate 4.3.8和通过以下顺序自动生成ID:
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "t_gen")
@SequenceGenerator(name = "t_gen", sequenceName = "T_SEQ", initialValue = 1, allocationSize = 50)
private long id;
不幸的是,Hibernate为ORACLE生成了以下DDL:
create sequence T_SEQ;
但我需要增加50,见How can I force positive auto generated hibernate primary keys。我怎样才能做到这一点?
编辑: 我需要强制Hibernate生成这样的序列,并在其生成的DDL中使用自定义自动增量。
答案 0 :(得分:0)
您必须在ORACLE数据库中创建序列:
<强> SQL&GT;创建序列T_SEQ递增50;
并在@SequenceGenerator中指定序列名称:
@SequenceGenerator(name =&#34; t_gen&#34;,sequenceName =&#34; T_SEQ&#34;)
我希望它能正常运作。 感谢。
答案 1 :(得分:0)
sql>create sequence T_SEQ
NOMAXvalue
start with 1
increment by 50
nocache
order;
答案 2 :(得分:0)
在我看来,目前没有可能做到这一点。它与此Hibernate错误https://hibernate.atlassian.net/browse/HHH-8008有关。