gpt4 book ai didi

java - JPA @SequenceGenerator 注释如何工作

转载 作者:IT老高 更新时间:2023-10-28 20:42:25 26 4
gpt4 key购买 nike

我正在学习 JPA,但对 @SequenceGenerator 感到困惑注释。

据我了解,它会自动为实体的数字身份字段/属性分配一个值。

Q1.这个序列生成器是利用数据库不断增加的数值生成能力还是自己生成数字?

Q2.如果 JPA 使用数据库自​​动增量功能,那么它是否适用于没有自动增量功能的数据存储?

Q3. 如果 JPA 自己生成数值,那么 JPA 实现如何知道接下来要生成哪个值?它是否首先咨询数据库以查看最后存储的值以生成值 (last + 1)?


第 4 季度。 还请说明sequenceNameallocationSize @SequenceGenerator 的属性注释。

最佳答案

sequenceName 是数据库中序列的名称。这是您指定数据库中已存在的序列的方式。如果你走这条路,你必须指定 allocationSize 它需要与 DB 序列用作其“自动增量”的值相同。

用法:

@GeneratedValue(generator="my_seq")
@SequenceGenerator(name="my_seq",sequenceName="MY_SEQ", allocationSize=1)

如果你愿意,你可以让它为你创建一个序列。但要做到这一点,您必须使用 SchemaGeneration 来创建它。为此,请使用:

@GeneratedValue(strategy=GenerationType.SEQUENCE)

此外,您还可以使用自动生成,它将使用表格来生成 ID。在使用此功能时,您还必须在某些时候使用 SchemaGeneration,以便可以创建生成器表。为此,请使用:

@GeneratedValue(strategy=GenerationType.AUTO)

关于java - JPA @SequenceGenerator 注释如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595124/

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