Neil的备忘录

just do it
posts - 66, comments - 8, trackbacks - 0, articles - 0

获取自动生成的ID

Posted on 2008-10-14 14:55 Neil's NoteBook 阅读(115) 评论(0)  编辑  收藏

此情况主要出现在数据库服务器为ORACLE下,一般的ID自动生成策略可以由HIBERNATE自带的工具类解决,由于HIBERNATE工具类将自动生成的ID与表绑定,所以当你需要取到自动生成的ID时,可以通过以下途径解决:
1. 在ORACLE新建一个序列(SEQUENCES).

-- Create sequence 
create sequence SEQ_QX_USERID
minvalue 
1
maxvalue 
99999999999
start 
with 10000002228
increment 
by 1
cache 
20;

 
2.新建一个函数或者存储过程,通过函数或者存储过程获取自动生成的序列号.

CREATE OR REPLACE FUNCTION F_GET_QXUSERID
RETURN VARCHAR2 IS
    LC_USERID    
VARCHAR2(11);  --节点代码
BEGIN

select to_char(SEQ_QX_USERID.nextval) into LC_USERID from dual;
--select to_char(10000000000 + count(r.userid))  INTO LC_USERID from qx_user r ;
RETURN LC_USERID;

END;
   
    (完)

只有注册用户登录后才能发表评论。


网站导航: