Hibernate xml映射文件配置主键的生成策略

Hibernate Oracle xml文件的配置

//手动赋值
<class name="org.aptech.hdax.pojo.Dept" table="DEPT" schema="SCOTT">
  <id name="deptno" column="DEPTNO">
  		<!-- generator生成器,class="assigned"代表手动赋值  -->
  		<generator class="assigned"></generator>
  </id>
  <property name="dname" column="DNAME"/>
</class>

//自动增长
<class name="org.aptech.hdax.pojo.Dept" table="DEPT" schema="SCOTT">
  <id name="deptno" column="DEPTNO">
  		<!-- generator生成器,class="native"自动增长  -->
  		<generator class="native"></generator>
  </id>
  <property name="dname" column="DNAME"/>
</class>

//自动增长
<class name="org.aptech.hdax.pojo.Dept" table="DEPT" schema="SCOTT">
  <id name="deptno" column="DEPTNO">
  		<!-- generator生成器,class="sequence"自动增长  -->
  		<generator class="native">
  			<!-- seq_dept数据库序列名称 -->
          <param name="sequence">seq_dept</param>
      </generator>
  </id>
  <property name="dname" column="DNAME"/>
</class>
  • increment:代理主键,适合于所有数据库,由hibernate维护主键自增,和底层数据库无关,但是不适合于2个或以上hibernate进程。
  • identity:代理主键,适合于Mysql或sql server等支持自增的dbms,主键值不由hibernate维护。
  • sequence:代理主键,适合于oracle等支持序列的dbms,主键值不由hibernate维护,由序列产生。
  • native:代理主键,根据底层数据库的具体特性选择适合的主键生成策略,如果是mysql或sqlserver,选择identity,如果是oracle,选择sequence。
  • hilo:代理主键,hibernate把特定表的字段作为hign值,生成主键值
  • uuid.hex:代理主键,hibernate采用uuid 128位算法生成基于字符串的主键值
  • assign:适合于应用程序维护的自然主键。

你可能感兴趣的:(java)