`

Hibernate generator小结

阅读更多

Hibernate generator小结

Xml代码 复制代码
  1. <?xml version="1.0" encoding='UTF-8'?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC   
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"   
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >  
  5.   
  6. <hibernate-mapping package="com.test.bean">  
  7. <class name="Student" table="student">  
  8.        
  9.     <id name="sid" column="sid" type="java.lang.Integer" length="11">  
  10.         <generator class="assigned"/>  
  11.     </id>  
  12.        
  13.     <property name="sname" type="java.lang.String" column="sname" not-null="false" length="20"></property>  
  14.     <property name="major" type="java.lang.String" column="major" not-null="false" length="20"></property>  
  15.     <property name="birthday" type="java.util.Date" column="birthday" not-null="false"></property>  
  16.     <property name="score" type="java.lang.Double" column="score" not-null="false"></property>  
  17. </class>  
  18. </hibernate-mapping>  
<?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 package="com.test.bean">
<class name="Student" table="student">
	
	<id name="sid" column="sid" type="java.lang.Integer" length="11">
		<generator class="assigned"/>
	</id>
	
	<property name="sname" type="java.lang.String" column="sname" not-null="false" length="20"></property>
	<property name="major" type="java.lang.String" column="major" not-null="false" length="20"></property>
	<property name="birthday" type="java.util.Date" column="birthday" not-null="false"></property>
	<property name="score" type="java.lang.Double" column="score" not-null="false"></property>
</class>
</hibernate-mapping>


“assigned”
 
主键由外部程序负责生成,在   save()   之前指定一个。  
   
 
“hilo”
 
通过hi/lo   算法实现的主键生成机制,需要额外的数据库表或字段提供高位值来源。   
   
 
“seqhilo”
 
与hilo   类似,通过hi/lo   算法实现的主键生成机制,需要数据库中的   Sequence,适用于支持   Sequence   的数据库,如Oracle。   
   
 
“increment”
 
主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。这种方式可能产生的问题是:不能在集群下使用。   
   
 
“identity”
 
采用数据库提供的主键生成机制。如DB2、SQL   Server、MySQL   中的主键生成机制。   
   
 
“sequence”
 
采用数据库提供的   sequence   机制生成主键。如   Oralce   中的Sequence。   
   
 
“native”
 
由   Hibernate   根据使用的数据库自行判断采用   identity、hilo、sequence   其中一种作为主键生成方式。
 
   
 
“uuid.hex”
 
由   Hibernate   基于128   位   UUID   算法   生成16   进制数值(编码后以长度32   的字符串表示)作为主键。
 
 
“uuid.string”
 
与uuid.hex   类似,只是生成的主键未进行编码(长度16),不能应用在   PostgreSQL   数据库中。
   
 
“foreign”
 
使用另外一个相关联的对象的标识符作为主键。

<id>元素中的<generator>用来为该持久化类的实例生成唯一的标识,hibernate提供了很多内置的实现。

Increment:由hibernate自动递增生成标识符,用于为long, short或者int类型生成唯一标识。
identity :由底层数据库生成标识符(自动增长),返回的标识符是 long, short 或者int类型的。
sequence :hibernate根据底层数据库序列生成标识符,返回的标识符 是long, short或者 int类型的。

hilo     :使用一个高/低位算法来高效的生成long, short 或者int类型的标识符。
uuid.hex :用一个128-bit的UUID算法生成32位字符串类型的标识符。
native   :根据底层数据库的能力选择identity, sequence 或者hilo中的一个。
assigned :让应用程序在save()之前为对象分配一个标示符。
foreign :使用另外一个相关联的对象的标识符。和<one-to-one>联合一起使用
分享到:
评论

相关推荐

    hibernate 学习笔记小结

    ### Hibernate学习笔记小结 #### 一、简介与配置 **Hibernate** 是一款开源的对象关系映射(ORM)框架,它允许开发人员将Java对象自动持久化到数据库表中,从而简化了数据访问层的开发工作。在Spring框架中,...

    hibernate小结

    ### Hibernate小结 #### 一、概述 在本篇文章中,我们将对Hibernate框架进行一个较为全面的小结。主要内容包括:Hibernate映射中的Lazy加载策略、Hibernate查询语言(HQL)的使用方法,以及一些基本配置与操作技巧...

    Struts2+Hibernate+Spring项目小结――Hibernate部分

    - `@SequenceGenerator`:定义序列生成器,用于自动生成主键值。 此外,还需要引入相关的包,例如`javax.persistence`和`org.hibernate.annotations`,以便使用这些注解。 通过这种方式,开发人员可以在不编写XML...

    Hibernate+struts实例学习

    #### 知识点小结 - 数据库设计与表创建是学习Hibernate与Struts实例的基础,需要掌握SQL语言和数据库基本操作。 - 在Java Web工程中配置数据源,了解不同数据库的配置方法和差异。 - Hibernate配置文件的编写,包括...

    利用hibernate自动生成hbm.xml文件和entity类.doc

    五、 小结 通过以上步骤,开发者可以使用 Hibernate 反向工程快速生成 Entity 类和 hbm.xml 文件,从而提高开发效率。同时,开发者需要了解生成文件的结构和用途,以便于正确地使用 Hibernate。

    用Hibernate映射继承关系

    #### 14.6 小结 映射继承关系是Hibernate中一项高级特性,它允许你将面向对象的设计模式映射到关系型数据库中。选择正确的映射策略取决于许多因素,包括性能需求、数据一致性和应用程序架构。通过了解这些不同的...

    hibernate注解学习笔记

    #### 四、小结 本篇笔记总结了Hibernate中常用的注解配置方式,包括实体类的基本配置、属性映射配置、复合类型配置以及主键生成策略等。通过这些注解,我们可以方便地将Java对象映射到关系型数据库中,简化了持久化...

    深入浅出Struts2(附源码)

    1.4 小结 13 第2章初识Struts 14 2.1 Struts的优点 14 2.2 Struts的动作处理流程 15 2.3 拦截器 17 2.4 Struts配置文件 18 2.4.1 struts.xml文件 19 2.4.2 struts.properties文件 26 2.5 Struts应用程序示例...

    hibernateByXML

    #### 五、小结 本文详细介绍了Hibernate中基于XML配置的一对一、一对多及多对多关联映射的实现方法。通过这些配置,可以方便地处理不同实体之间的关联关系,从而更好地实现数据的存储和查询操作。在实际开发中,...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    1.4 小结 13 第2章 初识Struts 14 2.1 Struts的优点 14 2.2 Struts的动作处理流程 15 2.3 拦截器 17 2.4 Struts配置文件 18 2.4.1 struts.xml文件 19 2.4.2 struts.properties文件 26 2.5 Struts应用程序示例 26 ...

    JPA学习笔记-EJB-03JPA主键生成策略总结

    #### 三、小结 以上介绍的是JPA中单字段主键生成的基本策略。每种策略都有其适用场景和优缺点。开发者应根据具体的应用需求和数据库特性选择最适合的生成方式。例如,在性能要求较高的场景下可以选择`IDENTITY`或`...

    Spring配置的5种方式

    #### 五、小结 Spring框架提供了丰富的事务管理方式,使得开发者可以根据项目需求选择最适合自己的方案。通过本文的介绍,相信读者已经对Spring事务配置的五种方式有了更深入的理解。在实际开发过程中,开发者可...

    spring事务配置的五种方式

    #### 五、小结 本文详细介绍了Spring事务配置的五种方式,并以第一种方式为例进行了具体分析。通过了解这五种配置方式,开发者可以根据项目的实际情况选择最合适的方法来实现事务管理,从而提高系统的稳定性和可靠性...

Global site tag (gtag.js) - Google Analytics