在很多情況下,我們使用Hibernate在已經(jīng)建立好數(shù)據(jù)庫(kù)的基礎(chǔ)上。在oracle中,如果已經(jīng)建立好的數(shù)據(jù)庫(kù)中使用了sequence,則可以按照下面的步驟把它引入到Hibernate中:
1、在oracle 首先創(chuàng)建sequence
create sequence seq_id
minvalue 1
start with 1
increment by 1
cache 20;
2.在你的hbm.xml中的配置
<id column="ID0000" name="id" type="integer">
<generator class="sequence">
<param name="sequence">seq_id</param>
</generator>
</id>
這樣再插入數(shù)據(jù)的時(shí)候,Hibernate回自動(dòng)生成如下語句:
hibernate: select seq_id.nextval from dual
hibernate: insert into YXJK.T_YXJK_WHRYTXL (XM0000, ZW0000, LXDH00, SJHM00, DZYJ00,
IP0000, ID0000) values (?, ?, ?, ?, ?, ?, ?)
自動(dòng)生成下一個(gè)序列值,然后將對(duì)象插入表中。
在使用的時(shí)候需要注意,Hibernate對(duì)于sequence的主鍵的要求是一定要是shor,long,或者integer