gpt4 book ai didi

Hibernate:关于@GeneratedValue 工作原理的概述

转载 作者:行者123 更新时间:2023-12-03 23:43:08 25 4
gpt4 key购买 nike

我很难找到对@GeneratedValue 的准确解释以及从数据库的角度来看发生的事情的不同策略。

是否总是查询数据库并返回最后一个可用值?如果 2 个不同的进程(不同的 Hibernate 应用程序)同时访问同一个表会发生什么?特别是使用自动数值和序列

最佳答案

我假设您指的是 JPA @GeneratedValue。
@GeneratedValue注释告诉 ORM 如何找出该字段的值。

例如:

 @Id
@GeneratedValue(strategy=SEQUENCE, generator="CUST_SEQ")
@Column(name="CUST_ID")
public Long getId() { return id; }

Example 2:

@Id
@GeneratedValue(strategy=TABLE, generator="CUST_GEN")
@Column(name="CUST_ID")
Long id;

要理解的关键是生成的值有一个策略,生成值的策略决定了会发生什么。在上面的例子中, SEQUENCE 生成策略意味着 ORM 将在第一次保存对象时向数据库询问序列的新值。第二个示例指定了一个表生成策略,这意味着 ORM 将查询表中的一行以确定 id 的值。在示例 2 中,没有显示使用哪个表的详细信息,因为它引用了一个名为“CUST_GEN”的生成器

您将遇到的典型发电机。
  • 身份 - 插入后询问自动增量列的项目值
  • 序列 - 该值来自数据库序列
  • table - 该值来自数据库中的另一个表
  • 自动 - 根据数据库类型选择上述之一
  • UUID - 在插入之前生成 UUID

  • 可以开发自定义生成器。与数据库的交互将取决于生成策略。

    关于Hibernate:关于@GeneratedValue 工作原理的概述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11788483/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com