`

Hibernate part 5:主键生成策略

 
阅读更多

 

 

<id name="id" column="id" type="int">
	<generator class="increment"></generator>
</id>

Hibernate通过SQL max(id)+1获得最大值,不依赖于数据库,JavaBean中ID类型必须为short、int、long,不能不为byte,多线程情况下会有并发问题

 

<id name="id" column="id" type="int">
	<generator class="identity"></generator>
</id>

 由底层数据库负责生成ID,要求数据库必须支持主键自动增长类型字段,支持自动增长字段类型的数据库包括: DB2, MySQL, MS SQL Server, Sybase,Oracle没有这种类型,JavaBean中ID类型必须为short、int、long,不能不为byte

 

<id name="id" column="id" type="int">
	<generator class="sequence">
		<param name="sequence">Oralce数据库中序列的名称</param>
	</generator>
</id>

由于 sequence 生成ID的机制依赖于底层数据库系统的序列, 因此, 要求底层数据库系统必须支持序列. 支持序列的数据库包DB2、Oracle,MySQL不支持

 

<id name="id" column="id" type="int">
	<generator class="native"></generator>
</id>

 依据底层数据库对自动生成标识符的支持能力, 来选择使用 identity, sequence 或 hilo 标识符生成器,因此很适合于跨数据库平台开发

 

<id name="id" column="id" type="string">
	<generator class="uuid"></generator>
</id>

 Hibernate会产生不重复的32位字符串作为主键,不依赖于数据库

 

<id name="id" column="id" type="string">
	<generator class="assigned"></generator>
</id>

 不依赖于数据库,也不依赖与Hibernate,通过程序设置JavaBean的主键

 

<composite-id>
	<key-property name="firstname" column="firstname" type="string"/>
	<key-property name="lastname" column="lastname" type="string"/>
<composite-id>

 复合主键,通过多个字段设置主键,不依赖于数据库,也以来与Hibernate,通过程序设置JavaBean的主键

 

分享到:
评论

相关推荐

    Hibernate Part 3:核心API和常量配置

    8. **Entity Mapping**:介绍了如何通过XML或注解将Java类映射到数据库表,包括属性映射、主键生成策略、关联映射等。 9. **Criteria API的常量**:比如Criteria的FetchMode常量,用于控制关联对象的加载方式,可以...

    08.拓薪教育-hibernate4.3的hibernate.cfg.xml基本配置.part2

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    孙卫琴精通hibernate part3

    《孙卫琴精通Hibernate Part3》是对知名数据库框架Hibernate深入探讨的系列教程的第三部分,主要涵盖的内容可能包括但不限于高级查询、性能优化、缓存策略、关联映射、多对多关系、一对多关系、一对一关系等核心主题...

    08.拓薪教育-hibernate4.3的hibernate.cfg.xml基本配置.part1

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    05.拓薪教育-hibernate4.3环境搭建上.part1

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  5.1.5 控制insert和update语句  5.2 处理SQL引用标识符  5.3 创建命名策略  5.4 设置数据库Schema...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    本章主要介绍关系数据库中的代理主键(不具有业务含义),接着介绍Hibernate提供的几种内置标识符生成器的用法及适用范围。 6.1 关系数据库按主键区分不同的记录 123 6.1.1 把主键定义为自动增长标识符类型 123 ...

    02.拓薪教育-hibernate4.3-orm剖析.part2

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    04.拓薪教育-hibernate4.3官方核心包介绍.part1

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    06.拓薪教育-hibernate4.3环境搭建中.part1

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    06.拓薪教育-hibernate4.3环境搭建中.part2

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    05.拓薪教育-hibernate4.3环境搭建上.part2

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    04.拓薪教育-hibernate4.3官方核心包介绍.part2

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    精通Hibernate:对象持久化技术第二版part3

    本章主要介绍关系数据库中的代理主键(不具有业务含义),接着介绍Hibernate提供的几种内置标识符生成器的用法及适用范围。 6.1 关系数据库按主键区分不同的记录 123 6.1.1 把主键定义为自动增长标识符类型 123 ...

    02.拓薪教育-hibernate4.3-orm剖析.part1

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  5.1.5 控制insert和update语句  5.2 处理SQL引用标识符  5.3 创建命名策略  5.4 设置数据库Schema...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  5.1.5 控制insert和update语句  5.2 处理SQL引用标识符  5.3 创建命名策略  5.4 设置数据库Schema...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  5.1.5 控制insert和update语句  5.2 处理SQL引用标识符  5.3 创建命名策略  5.4 设置数据库Schema...

    hiberante4.2.3-part01

    此外,`@Id`注解用于标记主键字段,`@GeneratedValue`用于指定主键生成策略。 2. **持久化API**:Hibernate提供了一组API来操作实体,包括`Session`、`SessionFactory`等接口。`SessionFactory`是线程安全的,负责...

    eib3.0中的注解

    - `@GeneratedValue`:用于定义主键生成策略。 **示例**: ```java @Entity @Table(name = "Person") public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; ...

Global site tag (gtag.js) - Google Analytics