根据sequence生成id报错问题解决

作者 zwx 创建于2013-07-23 01:53:00 修改者gaojiating 修改于2013-11-01 08:20:00字数539
文档摘要:Oracle自增Id手动插入数据时插入的Id大于自增序列的下一个值时,等Sequence值为曾经插入的这个值的时候就会无法插入。
关键词:
Oracle自增Id 手动插入数据时插入的Id大于自增序列的下一个值时,等Sequence值为曾经插入的这个值的时候就会无法插入。 解决办法: 重新设置增长初始值: Alter Sequence hibernate_sequence Increment By 30000; 查询下一个序列值: select hibernate_sequence.nextval from dual; 查询当前序列值,必须在执行 nextval后操(取session中的): select hibernate_sequence.CURRVAL from dual; 实体类中的设置: @Entity @Table(name = "KC_UserRole") @SequenceGenerator(name = "userRole_gen", sequenceName = "userRole_sequence", initialValue = 50000, allocationSize = 1) public class UserRole implements Serializable { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "userRole_gen") private Integer id; }