我有以下映射
@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。
现在工作正常