使用Oracle序列时,Hibernate不会生成标识符

我有以下映射

@Entity @SequenceGenerator(name="sacpSequenceGenerator", sequenceName="SACP_SEQ") public class Sacp { private Integer id; @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="sacpSequenceGenerator") public Integer getId() { return this.id; } // other setter's and getter's } 

根据SACP表进行映射

 ID NUT NULL NUMBER(4) 

当我试图保存一个Sacp实例时,Hibernate抱怨道

ORA-01438:大于指定精度的值允许此列

即使使用Long而不是Integer,也会抛出相同的错误

我该怎么做才能解决这个问题?

我发现了这个

SEQ_GEN使用名为my_sequence的序列定义序列生成器。 用于此基于序列的hilo算法的分配大小为20.请注意,此版本的Hibernate Annotations不处理序列生成器中的initialValue。 默认分配大小为50,因此如果要使用序列并每次拾取值,则必须将分配大小设置为1。

现在它工作正常