hibernate oracle 自增

oracle 自增需要新建sequence以及触发器:

create sequence seq_team--创建序列sequence
increment by 1   --增长速度为1
start with 1    --开始值为1
nomaxvalue    --没有最大值
nocycle   --不循环

nocache   --不缓存
create trigger trg_team         -- trg_team是触发器名称

before insert on team           --在创建触发器前对每一行检测是否触发(team你建的表)

for each row 

begin
select seq_team.nextval      seq_team是上面定义的序列sequence

into :new.id from dual;        --(new:关键字不必变动;id指的是表中需要自增的id)

end;

但是按照以上来配置 hibernate无法在使用save方法的时候返回id,这时候需要在映射文件配置seq_team

        <id name="rsMessageemailId" column="RS_MESSAGEEMAIL_ID">
            <generator class="sequence">
                <param name="sequence" >seq_team</param>
            </generator>
        </id>
但是如果配置了映射sequence还配置了触发器,则会造成save返回id比实际数据库存储id小1,这时候删除数据库出发器即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值