因爲oracle不支持自動編號,爲解決以上錯誤,咱們還得爲oracle數據庫建立一個SEQUENCE(序列)語句如
create sequence t_user_role_seq cache 20 increment by 1 start with 100 nomaxvalue;
在hibernate中的映射文件可這麼寫 java
- <id name="id" type="java.lang.Long" column="ID">
- <generator class="sequence" >
- <param name="sequence"> t_user_role_seq </param>
- </generator>
- </id>
附錄:id生成方式
1,序列sequence 只適用於Oracle 算法
- <id name="id" column="id">
- <generator class="sequence">
- <param name="sequence">person_seq</param><!--指定sequence名-->
- </generator>
- </id>
|
<id name="id" column="id" type="integer"> <generator class="increment"/> </id> |
<id name="id" column="id">
<generator class="native"/>
</id>
|
<id name="id" column="id"> <generator class=" <param name="table">high_value</param> <!-- 設置高位值取值的表 --> <param name="column">next_value</param> <!-- 設置高位值取值的字段 --> <param name="max_lo">50</param> <!-- 指定低位最大值,當取道最大值是會再取一個高位值再運算 --> </generator> </id> |