Hibernate配置Oracle自增项目

来源:互联网 发布:淘宝店怎么看分 编辑:程序博客网 时间:2024/05/12 16:53

在Oracle数据库中,通过对表项目建Sequence和Trigger实现了列的自增,但是在Hibernate中配置后,发现在插入数据时不能自增,经过一番尝试,发现表的配置文件里面的generator要设置为“assigned”,详细代码如下。



Oracle Sequence代码:

-- Create sequence create sequence SEQ_URLTBLminvalue 1maxvalue 9999999999999999999999999999start with 15increment by 1nocache;

Oracle Trigger代码:

create or replace trigger insert_urltbl  before insert  on urltbl   for each rowdeclare  -- local variables herebegin  select seq_urltbl.nextval into :new.urlid from dual;end insert_urltbl;

Hibernate配置代码:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="bean.UrlTbl" table="urltbl">    <id name="urlId" type="java.lang.Integer">        <column name="urlid"></column>        <generator class="assigned">            <!-- param name="sequence">SEQ_URLTBL</param> -->        </generator>    </id>    <property name="folderName" type="java.lang.String">        <column name="foldername" length="100" />    </property>    <property name="urlAddr" type="java.lang.String">        <column name="urladdr" length="100" />    </property>    <property name="saveFlg" type="java.lang.String" insert="false" update="false">        <column name="saveflg" length="1" />    </property>    <property name="updTime" type="java.sql.Date" insert="false" update="false">        <column name="updtime" />    </property></class></hibernate-mapping>
0 0