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,这时候删除数据库出发器即可