在orcal中,我们使用创建序列和触发器的方法实现自增序列,与mysql、microsoft sql有所不同。其方法如下:
1、对表的字段设置主键,也可以不设,但要有唯一键约束。比如所设的表名为:userinfo,其主键为,userId.
2、创建sequence,序列名为:seq_userinfo_id
3、创建触发器:其脚本文件为:
create or replace trigger tri_userinfo_id --tri_userinfo_id触发器名字
before insert on userinfo --userinfo是表名
for each row
declare
nextid number;
begin
IF :new.USERID IS NULL or :new.USERID=100000 THEN --userId是列名
select seq_userinfo_id.nextval --seq_userinfo_id正是刚才创建的序列
into nextid
from sys.dual;
:new.userId:=nextid; --userId列名
end if;
end tri_userinfo_id; --tri_userinfo_id触发器名字
4、下面是在hibernate中配置Userinfo.hbm.xml文件
<id name="userid" type="java.lang.Integer">
<column name="USERID" precision="6" scale="0"/>
<generator class="sequence"> <!--在ORCAL中生在器的类型用SEQUENCE-->
<!--配置生在器的参数,在hibernate中默认的ORCAL的序列名字为hibernate_sequence,所以在此处要修改为你在ORCAL中创建的序列名seq_userinfo_id-->
<param name="sequence">seq_userinfo_id</param>
</generator>
</id>
5、现在你可以去试了,如果你的其它配置没有错误的话,就搞定了!这只是我在学习的中的一些体会,分享给大家。上面所写若有不正确的地方,敬请指正。QQ:394894345