1. increment标识符生成器
•不依赖于底层的数据库系统,所以适合所有的数据库
•适合只有单个的Hibernate应用进程访问同一个数据库的情况,在集群环境下不支持使用
•OID必须为long,int,short
自增
@Id
@GeneratedValue(generator = "generator")
@GenericGenerator(name = "generator", strategy = "increment")
@Column(name = "ADMINLOG_ID", unique = true, nullable = false, precision = 22, scale = 0)
public Integer getAdminlogId() {
return this.adminlogId;
}
2. identity标识符生成器
•依赖底层数据库系统,所以只支持底层数据库系统必须要支持自动增长字段类型,这些数据库有:DB2,MySQL,SQL Server,Sybase等
•OID必须为long,int或short
•用的很多
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "ADMINLOG_ID", unique = true, nullable = false, precision = 22, scale = 0)
public Integer getAdminlogId() {
return this.adminlogId;
}
3. sequence标识符生成器(序列)
•sequence生成标识符的机制依赖于底层数据库的序列,所以,要求底层的数据库必须要支持序列。支持序列的数据库包括:Oracle,DB2
•用的也相对比较多
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator="PROMOTION_SEQ")
@SequenceGenerator(name="PROMOTION_SEQ",sequenceName="SEQ_T_APPLICATION")
@Column(name = "ADMINLOG_ID", unique = true, nullable = false, precision = 22, scale = 0)
public Integer getAdminlogId() {
return this.adminlogId;
}
4. native标识符生成器
•native能根据底层数据库系统的类型,自动选择合适的标识符生成器,所以很适合于跨数据库平台开发,也就是应用需要连接多种数据库系统的场合
•OID必须为long,int,short,要不就会抛异常和上面的一样
•用的很多
分享到:
相关推荐
1. Increment 标识符生成器:这种生成器适用于逻辑主键,它在 Hibernate 初始化时获取表中最大 ID,然后在插入新记录时递增。但这种方法不适用于多线程或分布式环境,因为可能会导致并发问题,即多个进程可能会同时...
本章主要介绍关系数据库中的代理主键(不具有业务含义),接着介绍Hibernate提供的几种内置标识符生成器的用法及适用范围。 6.1 关系数据库按主键区分不同的记录 123 6.1.1 把主键定义为自动增长标识符类型 123 ...
Hibernate提供了一系列内置的标识符生成策略,其中有些只适用于特定类型的数据库。最常见的标识符生成方式是使用自动递增序列号。对于某些类型的数据库(如HSQLDB),可以使用序列/生成器来生成这个序列号。这种策略...
本章主要介绍关系数据库中的代理主键(不具有业务含义),接着介绍Hibernate提供的几种内置标识符生成器的用法及适用范围。 6.1 关系数据库按主键区分不同的记录 123 6.1.1 把主键定义为自动增长标识符类型 123 ...
6.4 Hibernate的内置标识符生成器的用法 6.4.1 increment标识符生成器 6.4.2 identity标识符生成器 6.4.3 sequence标识符生成器 6.4.4 hilo标识符生成器 6.4.5 native标识符生成器 6.5 映射自然主键 ...
#### Hibernate内置标识符生成器 标识符生成器负责生成实体对象的主键值。Hibernate提供了多种内置的标识符生成策略,例如`increment`(递增)、`identity`(数据库自增)和`sequence`(序列)等。 #### ...
6.4 Hibernate的内置标识符生成器的用法 6.4.1 increment标识符生成器 6.4.2 identity标识符生成器 6.4.3 sequence标识符生成器 6.4.4 hilo标识符生成器 6.4.5 native标识符生成器 6.5 映射自然主键 ...
6.4 Hibernate的内置标识符生成器的用法 6.4.1 increment标识符生成器 6.4.2 identity标识符生成器 6.4.3 sequence标识符生成器 6.4.4 hilo标识符生成器 6.4.5 native标识符生成器 6.5 映射自然主键 ...
6.4 Hibernate的内置标识符生成器的用法 6.4.1 increment标识符生成器 6.4.2 identity标识符生成器 6.4.3 sequence标识符生成器 6.4.4 hilo标识符生成器 6.4.5 native标识符生成器 6.5 映射自然主键 ...
- **4.1.2 内建约束**:Hibernate 验证器内置了一些常见的约束注解,如 `@NotNull`、`@Size` 等。 - **4.1.3 错误信息**:可以通过 `@Constraint` 注解的 `message` 属性来定义约束违反时的错误消息。 - **4.1.4 ...
Hibernate支持多种内置的标识符生成器,如`increment`、`native`、`sequence`等,可以根据数据库系统选择合适的生成策略。`type`属性的值可以是Hibernate预定义的类型,如`string`、`int`,它们对应Java的String和...
本文档主要介绍了使用Hibernate进行注解式开发的方法,并且针对Hibernate的基本使用及其配置进行了详尽的解释。Hibernate作为一个流行的Java持久层框架,提供了对象关系映射(ORM)的功能,使得Java应用程序能够更加...
#### Hibernate标识符生成器 Hibernate提供了多种内置的标识符生成策略,用于处理主键的生成: - **increment**: 自动递增策略,适用于代理主键,每次增加1,仅限于`long`, `int`, `short`类型。 - **identity**: ...
* sequence(序列):在 DB2, PostgreSQL, Oracle, SAP DB, McKoi 中使用序列(sequence),而在 Interbase 中使用生成器(generator)。返回的标识符是 long, short 或者 int 类型的。 * assigned(自行分配):...
- **5.1.4.6 触发器实现的主键生成器**:利用数据库触发器自动生成主键。 - **5.1.5 composite-id**:复合主键的映射。 - **5.1.6 鉴别器**:用于多态继承时区分具体子类。 - **5.1.7 版本**:乐观锁机制,防止...
根据提供的信息,我们可以总结出以下关于达内HIBERNATE学习笔记的重要知识点: ...通过这些知识点的学习,可以深入理解Hibernate框架的核心技术和应用场景,帮助开发者更好地掌握Hibernate的使用方法。
除了内置的主键生成策略,开发者还可以通过扩展Hibernate的类来自定义主键生成器。这允许更灵活地控制主键的生成逻辑,满足特定业务场景的需求。具体实现细节可参考相关文档或社区资源。 总之,Hibernate映射文件的...
《Hibernate Annotations 中文帮助文档》提供了关于Hibernate框架中注解使用的详细指南,尤其适合那些英语阅读困难的开发者。文档涵盖了从创建注解项目到映射各种数据库元素、处理继承关系、映射关联、以及使用...
- **Hibernate 基于事件的验证**:使用 `org.hibernate.event.spi` 包中的事件监听器接口来实现基于事件的验证。 - **程序级验证**:可以在业务逻辑中显式地调用验证方法,如 `javax.validation.Validator`。 - *...
### HIBERNATE - 符合Java习惯的关系数据库持久化 ...不仅涵盖了Hibernate的基本使用方法,还深入探讨了复杂的映射策略、配置选项以及高级主题,旨在帮助读者全面掌握Hibernate,并能够在实际项目中灵活运用这些技术。