使用Hibernate不長時間,今天想動手做一個小例子,數據庫使用的是Oracle。打算使用Oracle中的序列作為表的主鍵,卻不知道使用Hibernate如何與其關聯在一起。請教同事,被告知要使用諸如select語句進行查詢“select sequence.nextval from dual”,
方法如下:
1、在oracle 首先創建sequence
2.在你的hbm.xml中的配置
這樣再插入數據的時候,Hibernate回自動生成如下語句:
自動生成下一個序列值,然後將對象插入表中。
這樣問題得解!
sequence就是采用數據庫提供的sequence機制生成主鍵。如oralce中的Sequence
native就是由hibernate根據數據庫的Dialect,自動采用identity,hilo,sequence的其中一種作為主鍵生成方式
create sequence seq_id
minvalue 1
start with 1
increment by 1
cache 20;
<id column="ID0000" name="id" type="integer">
<generator class="sequence">
<param name="sequence">seq_id</param>
</generator>
</id>
hibernate: select seq_id.nextval from dual
hibernate: insert into YXJK.T_YXJK_WHRYTXL (XM0000, ZW0000,
LXDH00,SJHM00,DZYJ00,IP0000,ID0000) values (?, ?, ?, ?, ?, ?, ?)