`

五、ID生成策略

 
阅读更多

xml配置中常用的 generator 如下:

 

 

identity       用于类似mysql数据库中,支持主键自动递增

sequence  用于类似oracle数据库中,支持序列(不指定具体sequence,hibernate则会默认生成一个名叫hibernate-sequence的序列)

uuid            生成全球唯一的id

native         根据底层数据库的能力选择 identity 、 sequence 或者 hilo 中的一个

 

annotation配置如下:

 

@GeneratedValue(默认策略为strategy = GenerationType.AUTO),这就相当于xml配置的native。

 

@GeneratedValue(strategy = GenerationType.IDENTITY)  相当于xml配置的 identity      

 

@GeneratedValue(strategy = GenerationType.SEQUENCE) 相当于xml配置的 sequence

 

@SequenceGenerator(name = "teaIdGe", sequenceName = "tea_seq")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "teaIdGe")

指定了sequence的名字

 

@TableGenerator(name = "Tea_GEN", table = "GENERATOR_TABLE", pkColumnName = "pk_key", valueColumnName = "pk_value", pkColumnValue = "tea", allocationSize = 1)

@GeneratedValue(strategy = GenerationType.TABLE, generator = "Tea_GEN")

 

联合主键用Hibernate注解映射方式主要有三种:


第一、将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将该类注解为@Embeddable,最后在主类中(该类不包含联合主键类中的字段)保存该联合主键类的一个引用,并生成set和get方法,并将该引用注解为@Id

第二、将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,最后在主类中(该类不包含联合主键类中的字段)保存该联合主键类的一个引用,并生成set和get方法,并将该引用注解为@EmbeddedId

第三、将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并要重写equals和hashcode.最后在主类中(该类包含联合主键类中的字段)将联合主键字段都注解为@Id,并在该类上方将上这样的注解:@IdClass(联合主键类.class)

 

 

分享到:
评论

相关推荐

    JAVA 的ID生成策略

    JAVA ID生成策略 JAVA ID生成策略是一种在Hibernate框架中使用的策略,用于生成实体类的主键值。这种策略在Annotation情况下,主要有三种方式生成主键值。 第一种方式是使用数据库的自动增长字段生成。这种方式...

    Hibernate教程02_ID生成策略

    在Java的持久化框架Hibernate中,ID生成策略是至关重要的一个环节。它是用来唯一标识数据库中每一行记录的关键部分。本教程将详细讲解Hibernate中的ID生成策略,以及如何在实际项目中灵活应用。 首先,ID生成策略是...

    ID生成策略

    ### ID生成策略详解 在软件开发中,尤其是数据库应用领域,如何高效且合理地生成唯一标识符(ID)是至关重要的。本文将详细介绍几种常见的ID生成策略:`sequence`、`native`、`identity`、`foreign`等,并探讨它们...

    分布式ID生成策略_snowflake算法

    分布式ID生成策略是现代互联网应用中的重要组成部分,尤其是在大数据时代,每个数据实体通常都需要一个唯一标识符(ID)来区分其身份。Snowflake算法是由Twitter开源的一种高效且可扩展的分布式ID生成方案,广泛应用...

    java自动生成id策略

    在Java编程中,自动生成ID是一项常见的需求,特别是在数据库记录、分布式系统节点标识等领域。"java自动生成id策略"指的是设计并实现一种机制,确保...实际应用中,还需要根据业务需求和系统规模选择适合的ID生成策略。

    mybatis自定义生成代码策略示例

    在 MyBatis 中,我们可以自定义代码生成策略来满足特定的需求。 自定义 MyBatis 代码生成器涉及到以下几个核心概念: 1. **配置文件**:在 MyBatis Generator(MBG)中,我们首先需要创建一个 XML 配置文件,用于...

    常用Hibernate主键生成策略

    ### 常用Hibernate主键生成策略详解 #### 一、引言 在数据库设计与操作过程中,主键是确保数据唯一性的关键要素之一。在实际应用中,开发者经常需要处理不同类型的数据库,并且需要应对各种不同的主键生成需求。...

    Hibernate中主键生成策略

    在Java的持久化框架Hibernate中,主键生成策略是一个至关重要的概念,它决定了数据库表中主键值如何自动生成。主键通常是表中唯一标识记录的一列,对于数据的完整性和一致性至关重要。以下是对Hibernate中主键生成...

    Hibernate各种主键生成策略与配置详解

    ### Hibernate 主键生成策略与配置详解 #### 一、概述 在使用Hibernate进行持久化操作时,合理选择和配置主键生成策略对于确保数据的一致性和优化性能至关重要。本文将详细介绍几种常见的主键生成策略,并结合示例...

    全局唯一ID生成

    在实际应用中,我们可以根据业务需求选择合适的ID生成策略。例如,如果对ID的排序有要求,可以选择基于时间戳的方案;如果对ID长度有严格限制,可以考虑使用ObjectID;如果需要高并发且无特定顺序要求,雪花算法可能...

    使用表的id生成

    标题“使用表的id生成”涉及的是数据库管理和Java Persistence API (JPA) 中的一个关键概念:主键生成策略。在数据库表中,每个记录通常都有一个唯一的标识符,即主键,用于唯一地识别每条数据。在JPA中,有多种策略...

    javaID生成器javaID生成器

    ### Java ID生成器详解 #### 一、引言 在软件开发过程中,特别是在数据库操作时,经常需要为每个新创建的记录分配一个唯一的标识符(ID)。为了满足这一需求,Java 开发者们通常会设计一种高效且可靠的 ID 生成...

    openjpa实体标识的生成策略

    在OpenJPA中,实体标识(Entity Identifier)的生成策略是数据持久化过程中不可或缺的一部分,因为确保实体的唯一性对于数据库的正确性和一致性至关重要。OpenJPA提供了四种不同的策略来生成实体标识,使得开发者...

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

    ### JPA主键生成策略详解 #### 一、概述 持久化对象的主键生成机制在JPA(Java Persistence API)中占据着重要的位置。它不仅关乎数据的唯一标识符如何确定,还与数据的存储效率及应用逻辑紧密相关。JPA通过`@...

    基于TkMyBatis的通用Mapper的二次封装 主要讲Id的生成策略

    2. **扩展性**:设计ID生成策略时,考虑其可配置性和可扩展性,让不同的业务模块可以选择不同的ID生成策略。 3. **测试覆盖**:对修改后的代码进行全面的单元测试,确保新功能的正确性和原有功能不受影响。 4. **...

    细聊分布式ID生成方法.pdf

    通过对不同场景需求的分析,我们可以选择适合的ID生成策略。无论是基于时间戳排序还是利用数据库特性,亦或是采用高级算法如雪花算法,都应该根据具体的应用场景和技术栈来决定最佳实践方案。未来随着技术的发展,...

    go-id-builder ID生成器

    2. `watch.go`:这可能是用来监控和响应系统变化的代码,例如,当系统负载变化或新的数据库连接需要时,这个文件中的逻辑可能会自动调整ID生成策略。 3. `model.go`:文件中可能定义了与ID生成相关的数据模型,如...

    分布式ID生成策略(1)_snowflake算法

    分布式ID生成策略是现代互联网应用中的重要组成部分,尤其是在大数据时代,每个请求、每条记录往往都需要一个全局唯一的标识。Snowflake算法就是一种被广泛使用的分布式ID生成方案,它由Twitter开源,具有时间戳、...

Global site tag (gtag.js) - Google Analytics