1:对hibernate 自动生成的优化,和OID中的高低位算法。
<?xml version="1.0" encoding="UTF-8"?>
<!-- dtd文件在:hibernate3.jarorghibernatehibernate-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