Vla*_*lad 1 java oracle hibernate
我对 Oracle 序列和 Hibernate 有疑问。我使用这段代码通过 hibernate 获取 Oracle 序列
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "student_id_seq")
@SequenceGenerator(name = "student_id_seq", sequenceName = "Student_seq")
@Column(name = "StudentID")
public Long getStudentId() {
return this.studentId;
}
public void setStudentId(Long studentId) {
this.studentId = studentId;
}
Run Code Online (Sandbox Code Playgroud)
但是当我向表中插入新值时,生成的值不正确。例如:当我在数据库中有两条记录,id分别为2和3,当我插入新记录时,它的id不是4而是25。我不知道如何处理它。
你应该设置allocationSize为1
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "student_id_seq")
@SequenceGenerator(name = "student_id_seq",
sequenceName = "Student_seq",
allocationSize = 1)
Run Code Online (Sandbox Code Playgroud)
您可以在文档SequenceGenerator doc中阅读更多内容
| 归档时间: |
|
| 查看次数: |
15395 次 |
| 最近记录: |