hibernate操作oracle数据库 主键自增

本文探讨了在Oracle数据库中使用Hibernate时,如何处理主键自增的问题。由于Oracle需创建序列实现主键自增,作者在尝试过程中遇到了主键以50递增的异常。通过查阅资料,发现原因是`allocationSize`默认值为50,将`@SequenceGenerator`的`allocationSize`设置为1即可解决问题。文章鼓励读者交流反馈,共同进步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇文章基于http://blog.sina.com.cn/s/blog_6785747b0101blop.html

相信使用过mysql,sql server,oracle的朋友都知道,oracle中的表的主键如果想设置成自增长,那么需要创建序列

在oracle中为

create table Student(
 Student_ID  number(6) NOT NULL PRIMARY KEY,
 Student_Name varchar2(10) NOT NULL,
 Student_Age number(2) NOT NULL
);

CREATE SEQUENCE student_sequence 
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
CACHE 10;

insert into Student values(student_sequence.nextval,'aa',20);
此时数据库中会保存会插入一条数据id为(2,aa,20)的数据

有了这些知识再加上hibernate对数据库的操作,我们就可以开始写代码了

无注解版的student JavaBean类为

package com.bean;

public class Student
{
    private int student_id;
    private String student_name;
    private int student_age;
   
    public int getStudent_id()
    {
        return student_id;
    }
    public Strin
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值