在oracle中,我们常使用sequence做为表的主键,用Hibernate时需要在hbm.xml中做下配置:
<id name="userId" type="java.lang.Long"> <column name="USER_ID" precision="22" scale="0" /> <generator class="sequence"> <param name="sequence">SEQ_USER</param> </generator> </id>
主键类型必须是 java.lang.Long
这样再插入数据的时候,Hibernate回自动生成如下语句:
- Hibernate:selectSEQ_USER.nextvalfromdual
自动生成下一个序列值,然后将对象插入表中。
Hibernate需要通过配置文件指明所使用的Sequence,SEQ_USER是在oracle中已经创建好的sequence
在oracle中创建sequence方法:
-- Create sequence create sequence SEQ_USER minvalue 1 maxvalue 999999999999999999999999999 start with 1 increment by 1 cache 20;