Hibernate 中映射文件的配置模板

<hibernate-mapping 属性="值">  
    <class name="类名" table="被映射的表名">  
    <!--主键-->  
        <id>name="主键对应持久类中的属性名" column="数据库中主键的列名">  
        <generator class="主键生成策略">  
    </id>  
    <!--属性列表-->  
        <property name="属性名" column="列名" type="数据类型"/>  
    </class>  
</hibernate-mapping>  

其中:

<hibernate-mapping>元素中的属性如下:

  • schema:指定映射数据库的schema名;
  • catalog:指定映射数据库的Catalog名;
  • default-cascade:设置Hibernate默认的级联风格,默认为none;
  • default-access:设置默认属性访问策略,默认值为property;
  • default-lazy:设置默认延时加载策略,默认值为true;
  • auto-import:是否允许使用非全限定的类名,默认为true;
  • package:指定一个包,对于映射文件中非全限定的类名,默认在该包下;

<class>元素中的属性如下:

  • name:持久化类的类名;
  • table:持久化映射的表名;
  • discriminator-value:区分不同子类的值;
  • mutable:指定持久化类的实例是否可变,默认值为true;
  • proxy:延迟装载时的代理,可以是该类自己的名字;

`元素中元素的class属性指定了如下策略的主键生成器:

  • increment:自动获取数据表中所有主键中的最大值,在最大值基础上+1,为最新记录的主键;
  • indentity:自动增长。MS SQL Server、MySQL、DB2等数据库中可以设置表的某个字段(列)的数值自动增长。此种方式生成主键的数据类型可以是long、short、int及其对应的封装类的类型;
  • sequence:序列。Oracle、DB2等数据库可以创建一个序列,然后从序列中获取当前序号作为主键值;
  • hilo:“高/低位”搞笑算法产生主键值。此种方法生成主键的数据类型可以是long、short、int及其对应的封装类的类型;
  • seqhilo:与hilo类似,但使用指定的sequence获取高位值;
  • uuid:采用128位UUID算法生成一个字符串类型的主键;
  • guid:采用GUID字符串产生的主键值;
  • native:由Hibernate根据所使用的数据库支持能力从identity、sequence或者hilo中选择一种,例如Oracle中使用sequence,MySQL中使用identity;
  • assigned:指派值; foerign:通过关联持久化对象为主键赋值;

Friskit

继续阅读此作者的更多文章