hibernate 的OID

1:对hibernate 自动生成的优化,和OID中的高低位算法。

<?xml version="1.0" encoding="UTF-8"?>
<!-- dtd文件在:hibernate3.jar\org\hibernate\hibernate-mapping-3.0.dtd -->
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

 

<hibernate-mapping> <!-- dynamic-insert="true" 将sql语句变成只插入的字段的。!! -->
<!-- dynamic-update="true" 将sql语句变成只更新的字段的。-->
<class name="com.anrongtec.domain.Person" table="PERSONS"><!-- mutable="false"类中的所有字段都不会被更新。 -->
<!-- 映射主键 -->
<!-- <id name="id" column="ID" type="int" length="11">
主键生成策略:目前暂时记住用native
<generator class="native"></generator>
OID让hibernate来控制。
</id> -->

<id name="id" column="ID" type="int" length="11">
<!-- 主键生成策略:目前暂时记住用native -->
<generator class="hilo"><!-- 高低位生成策略 -->
<!-- 指定存放低位值得表 -->
<param name="table">tt</param>
<!-- 指定存放低位值的字段 -->
<param name="column"->value</param>
<!-- 最大的低位值-->
<param name="max_lo">5</param>
</generator>
</id>

<!-- 映射类中的属性和数据库表字段的关系 -->
<property name="name" insert="false" column="NAME"></property>
<property name="birthday" column="BIRTHDAY"></property>
<property name="address" column="ADDRESS"></property>
</class>
</hibernate-mapping>

2:hibernate 中的oid 是什么,以及配置方法。

hibernate的对象标识符(OID)
 可以用<id>元素来设定OID,OID可以定义为short,int,long类型,默认情况下,hibernate生成持久类时,会将OID定义为java包装类型
  用ID元素中的<generator>子元素来设定标识符生成器,例如:
  <id type="long" column="id">
     <generator />
  </id>
  以下是hibernate提供的内置标识符生成器:
  1.increment
  2.identity
  3.sequence
  4.hilo
  5.native
  6.uuid
  7.assigned

posted @ 2018-04-17 08:57  Sunray0330  阅读(169)  评论(0编辑  收藏  举报