hibernate生成主键id的配置
1、identity:用于MySql数据库。特点:递增 <id name="id" column="id"> <generator class="identity"/> </id> 注:对于MySql数据库使用递增序列时需要在建表时对主键指定为auto_increment属性。 2、sequence:用于Oracle数据库 <id name="id" column="id"> <generator class="sequence"> <param name="sequence">序列名</param> </generator> </id> 3、native:跨数据库时使用,由底层方言产生。 Default.sequence为hibernate_sequence <id name="id" column="id"> <generator class="native"/> </id> 注:使用native时Hibernate默认会去查找Oracle中的hibernate_sequence序列。 如果Oracle中没有该序列,连Oracle数据库时会报错。 4、hilo:通过高低位合成id,先建表hi_value,再建列next_value。必须要 有初始值。 <id name="id" column="id"> <generator class="hilo"> <param name="table">high_val</param> <param name="column">nextval</param> <param name="max_lo">5</param> </generator> </id> 5、sequencehilo:同过高低位合成id,建一个sequence序列,不用建表。<id name="id" column="id"><generator class="hilo"><param name="sequence">high_val_seq</param><param name="max_lo">5</param></generator></id>6、assigned:用户自定义id;<id name="id" column="id"><generator class="assigned"/></id> 7、foreign:用于一对一关系共享主健时,两id值一样。
转自:http://hi.baidu.com/bhzln/item/acac72126797f6ddbe90426b
分享到:
相关推荐
`assigned`是一种由外部程序负责生成主键的策略。在调用`save()`方法之前,需要手动设置主键的值。这种方式与Hibernate和底层数据库无关,可以跨数据库使用。 **配置示例:** ```xml <id name="id" column="id"> ...
这种策略在数据库级别生成主键,常见于MySQL和SQL Server。当一个新对象被保存时,数据库会自动为该对象分配一个唯一的ID。在Hibernate中,通过`@GeneratedValue(strategy = GenerationType.IDENTITY)`来指定。 2....
本文将重点介绍在Oracle数据库环境下,使用Hibernate的“native”策略来生成主键的具体方法及注意事项。 #### 二、主键生成策略概述 在Hibernate中,主键生成策略主要包括以下几种: - **identity**:由数据库...
Hibernate作为一款流行的Java持久层框架,提供了多种自动生成主键的方法,以适应不同场景的需求。本文将深入探讨Hibernate中自动生成主键的几种常见策略及其应用场景。 ### 1. UUID.hex UUID(Universally Unique ...
**hilo** 算法生成主键的过程如下: 1. 获取 hi 值:读取并记录数据库中 `hibernate_unique_key` 表中 `next_hi` 字段的值,并将该字段的值加 1 后保存回数据库。 2. 获取 lo 值:从 0 开始,一直到 max_lo 循环...
在Java的持久化框架Hibernate中,一对一(OneToOne)关系是一种常见的对象关系映射(ORM)配置,用于表示两个实体类之间的一种唯一关联。在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来...
在Hibernate中,只需在实体类的主键字段上添加`@GeneratedValue(strategy = GenerationType.IDENTITY)`注解,Hibernate会自动调用数据库的内置机制来生成主键。 2. **Sequence策略**: 适用于Oracle等支持序列的...
### 常用Hibernate主键生成策略详解 #### 一、引言 在数据库设计与操作过程中,主键是确保数据唯一性的关键要素之一。在实际应用中,开发者经常需要处理不同类型的数据库,并且需要应对各种不同的主键生成需求。...
- **定义:**hilo策略采用高位/低位算法来生成主键,通过查询一张额外的表来获取高位部分的值。 - **用途:**适用于大多数数据库类型,尤其适用于高性能的应用场景。 **配置示例:** ```xml <id name="id" column=...
6. **用Hibernate自动生成配置文件**:选择数据库中的目标表,如`t_user`,通过右键菜单选择“HibernateReverseEngineering”,根据提示逐步填写相关信息,包括主键类型、对应的Java类名及包名等,最后点击“Finish...
- 在使用联合主键时,通常不需要生成自增的ID,因为主键是通过组合多个字段生成的。 - 联合主键的每个字段通常都会设置为`@Column(nullable = false)`,确保它们在数据库中都是非空的。 通过以上步骤,你就可以在...
在这个例子中,我们添加了一个`Long`类型的`id`字段,并用`@GeneratedValue`和`@TableGenerator`注解来配置自动生成的策略。请注意,这仅适用于复合主键中包含自增部分的情况。 最后,确保在Hibernate配置文件(如`...
在Hibernate的映射文件或注解中,我们需要配置使用序列来生成主键。对于XML配置,可以在`<id>`标签下使用`<generator>`子标签,指定为`sequence`: ```xml <id name="id" column="ID"> ...
5. **sequence**: 使用数据库的序列生成主键,适用于DB2、PostgreSQL、Oracle、SAP DB、McKoi和Interbase。 6. **hilo**: 使用Hi-Lo算法,需要一个数据库表来存储生成的主键。不适用于JTA环境或自定义数据库连接。 ...
### Hibernate 主键生成策略详解 #### 一、概述 Hibernate 是一种流行的 Java 持久化框架,它简化了数据库操作,并提供了多种主键生成策略。主键是表中的一个或多个字段组合,用于唯一标识表中的每一条记录。...
本篇文章将详细讲解如何使用Hibernate通过配置文件反向生成数据库的所有配置文件,以及涉及的相关步骤和技术要点。 首先,Hibernate的反向工程(Reverse Engineering)功能可以帮助开发者从现有的数据库中生成实体...