`
eighthspace
  • 浏览: 26180 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jpa中的id生成策略总结

 
阅读更多

jpa中主要有以下几种id生成策略 (这里以MySql数据库为例,因此不包括sequence策略):

 

1、普通的自增长id生成策略:

 

@GeneratedValue 不指定参数,该id生成策略类似于hibernate中的native策略,有数据库自身决定id值。

 

2、table生成策略:

 

在数据库中专门生成一张表来记录某张表下一条记录的id,该表的结构大概是下面这样:

 

COLUMN_NAME  NEXT_ID

------------------------------------------------

    Person 2

    User 2

    ...

 

其中Person和User都是对于某张表的标识。具体配置如下所示:

 

 

@Id
	@TableGenerator(
			name="person_table_id_gen",     //策略生成器的名称
			table="t_id_gen",			     //记录id的表名称
			pkColumnName="ID_COLUMN_NAME",   //用于存储指定表的标识,例如Person表,User表等
			valueColumnName="NEXT_ID",    //存储下一条记录的id
			pkColumnValue="Person",
			allocationSize=1                           //id增长的步进值
	)
	@GeneratedValue(generator="person_table_id_gen" , strategy=GenerationType.TABLE)

 

另外,还有一种id生成策略,但是这个生成策略与服务器有关,由于JBOSS关于jpa的底层实现是使用hibernate,所以,

 

在JBOSS中可以使用该种生成策略,但是在别的应用服务器中不能使用。

 

uuid生成策略:

 

 

@Id
@GenericGenerator(name="myuuid" , strategy="uuid")
@GeneratedValue(generator="myuuid")

 

这种策略只能在JBOSS服务器中使用。如果使用这种策略的话,id必须声明为String类型。

分享到:
评论

相关推荐

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

    在JPA中,单字段主键类型的生成策略主要包括以下四种: 1. **AUTO(自动自增生成)** - **概述**:`AUTO`是最常用的主键生成策略之一,也是JPA默认采用的方式。当使用该策略时,JPA会根据后端数据库的不同特性...

    JPA环境搭建及JPA实例与JPA主键生成策略

    通过以上步骤,你就成功地搭建了JPA环境,并理解了如何创建JPA实体和设置主键生成策略。继续深入学习,你将能够利用JPA的强大功能,如查询语言(JPQL)、级联操作、事务管理等,来更高效地进行数据库操作。

    04_JPA详解_第一个JPA实例与JPA主键生成策略.zip

    本压缩包文件"04_JPA详解_第一个JPA实例与JPA主键生成策略.zip"包含了关于如何在实际项目中运用JPA,以及理解JPA主键生成策略的详细教程。 ### JPA基础 1. **JPA简介**: JPA是Java EE的一部分,它提供了一套规范,...

    openjpa实体标识的生成策略

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

    04_传智播客JPA详解_第一个JPA实例与JPA主键生成策略

    【标题】"04_传智播客JPA详解_第一个JPA实例与JPA主键生成策略"涉及的关键知识点主要包括Java Persistence API (JPA)的基础应用、首个JPA实例的创建以及JPA主键生成策略的理解和配置。JPA是Java平台上的一个标准,...

    真实项目中关于主键生成方式的剖析(JPA)

    在JPA中,通过`@GenericGenerator`注解可以定义主键的生成策略。例如,对于自增类型,可以设置`native`策略,对于手动生成的主键,如字符串类型,可以使用`assigned`策略。这里,`<T>`泛型允许我们根据需求选择主键...

    java自动生成id策略

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

    JPA_由数据库生成JavaBean

    - 通过使用JPA的注解,如`@Entity`(表示这是一个实体类)、`@Table`(指定数据库表名)、`@Id`(标识主键)、`@GeneratedValue`(主键生成策略)等,可以对JavaBean进行更精细的配置。 5. **使用生成的JavaBean**...

    springboot集成jpa代码,自动生成表

    `@Id`表示主键,`@GeneratedValue`定义主键生成策略,这里使用了数据库自增策略。 4. **创建Repository接口** Spring Data JPA允许我们通过接口来操作数据库,无需编写SQL。创建一个继承`JpaRepository`的接口: ...

    JPA的POJO生成

    JPA提供了多种方式来指定字段与数据库表之间的映射,如`@Column`注解用于指定列名、`@Table`用于指定表名、`@GeneratedValue`用于主键生成策略等。例如: ```java @Entity @Table(name = "USERS") public class ...

    使用表的id生成

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

    Spring Data JPA中文文档[1.4.3].zip

    Spring Data JPA是Java开发中的一个关键框架,它简化了与关系型数据库的交互,特别是基于Java Persistence API (JPA)。这个框架是Spring生态系统的组成部分,为开发者提供了声明式数据访问的方式,允许通过简单的...

    JPA中的联合主键

    联合主键的生成策略可以是自动生成(如`GenerationType.IDENTITY`),也可以是用户手动赋值。对于手动赋值,通常在创建新实体时,需要同时设置所有主键字段。如果希望使用自动生成,可能需要结合`@GeneratedValue`...

    JPA的Id注解.docx

    JPA提供了四种主要的生成策略: - **GenerationType.TABLE**:使用一个独立的数据库表来生成主键。 - **GenerationType.SEQUENCE**:基于数据库序列生成主键,比如在Oracle数据库中。 - **GenerationType.IDENTITY*...

    Spring JPA 配置类包集合 方便大家使用

    @Id注解用于标识主键,@GeneratedValue则用于指定主键生成策略。例如,如果你使用的是自动增长的主键,可以设置@GeneratedValue(strategy=GenerationType.AUTO)。 3. **PersistenceContext**:Spring JPA使用...

    spring data jpa中文文档

    使用`@Table`注解指定对应的数据库表,`@Id`标识主键,`@GeneratedValue`处理主键生成策略。 4. **Query方法命名规则** Spring Data JPA可以根据方法名自动创建查询。例如,`findAll()`对应`SELECT * FROM table`...

    JPA_官方文档_中文版

    例如,`@Entity`注解用于标记实体类,`@Id`和`@GeneratedValue`注解则分别用于标识主键和指定自动生成策略。 **示例**:假设有一个论坛主题实体`Topic`,其映射关系可通过以下注解定义: ```java @Entity(name="T_...

    HIbernate Jpa 生成entities

    - `@GeneratedValue`: 控制主键的生成策略,如自增、UUID等。 - `@Column`: 定义字段与数据库列的映射,可设置长度、是否允许为空等属性。 - `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`: 描述实体...

    JPA注解 和hibernate 建表

    * @GeneratedValue:标注该实体Bean的主键自动生成策略 这些注解可以帮助JPA provider(例如Hibernate)生成对应的数据库表结构和SQL语句。 三、Hibernate概述 Hibernate是一个基于JPA规范的ORM(Object-...

Global site tag (gtag.js) - Google Analytics