- <?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>
<?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** 是一款开源的对象关系映射(ORM)框架,它允许开发人员将Java对象自动持久化到数据库表中,从而简化了数据访问层的开发工作。在Spring框架中,...
### Hibernate小结 #### 一、概述 在本篇文章中,我们将对Hibernate框架进行一个较为全面的小结。主要内容包括:Hibernate映射中的Lazy加载策略、Hibernate查询语言(HQL)的使用方法,以及一些基本配置与操作技巧...
- `@SequenceGenerator`:定义序列生成器,用于自动生成主键值。 此外,还需要引入相关的包,例如`javax.persistence`和`org.hibernate.annotations`,以便使用这些注解。 通过这种方式,开发人员可以在不编写XML...
#### 知识点小结 - 数据库设计与表创建是学习Hibernate与Struts实例的基础,需要掌握SQL语言和数据库基本操作。 - 在Java Web工程中配置数据源,了解不同数据库的配置方法和差异。 - Hibernate配置文件的编写,包括...
五、 小结 通过以上步骤,开发者可以使用 Hibernate 反向工程快速生成 Entity 类和 hbm.xml 文件,从而提高开发效率。同时,开发者需要了解生成文件的结构和用途,以便于正确地使用 Hibernate。
#### 14.6 小结 映射继承关系是Hibernate中一项高级特性,它允许你将面向对象的设计模式映射到关系型数据库中。选择正确的映射策略取决于许多因素,包括性能需求、数据一致性和应用程序架构。通过了解这些不同的...
#### 四、小结 本篇笔记总结了Hibernate中常用的注解配置方式,包括实体类的基本配置、属性映射配置、复合类型配置以及主键生成策略等。通过这些注解,我们可以方便地将Java对象映射到关系型数据库中,简化了持久化...
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应用程序示例...
#### 五、小结 本文详细介绍了Hibernate中基于XML配置的一对一、一对多及多对多关联映射的实现方法。通过这些配置,可以方便地处理不同实体之间的关联关系,从而更好地实现数据的存储和查询操作。在实际开发中,...
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中单字段主键生成的基本策略。每种策略都有其适用场景和优缺点。开发者应根据具体的应用需求和数据库特性选择最适合的生成方式。例如,在性能要求较高的场景下可以选择`IDENTITY`或`...
#### 五、小结 Spring框架提供了丰富的事务管理方式,使得开发者可以根据项目需求选择最适合自己的方案。通过本文的介绍,相信读者已经对Spring事务配置的五种方式有了更深入的理解。在实际开发过程中,开发者可...
#### 五、小结 本文详细介绍了Spring事务配置的五种方式,并以第一种方式为例进行了具体分析。通过了解这五种配置方式,开发者可以根据项目的实际情况选择最合适的方法来实现事务管理,从而提高系统的稳定性和可靠性...