- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在学习 JPA,但对 @SequenceGenerator
感到困惑注释。
据我了解,它会自动为实体的数字身份字段/属性分配一个值。
Q1.这个序列生成器是利用数据库不断增加的数值生成能力还是自己生成数字?
Q2.如果 JPA 使用数据库自动增量功能,那么它是否适用于没有自动增量功能的数据存储?
Q3. 如果 JPA 自己生成数值,那么 JPA 实现如何知道接下来要生成哪个值?它是否首先咨询数据库以查看最后存储的值以生成值 (last + 1)?
第 4 季度。 还请说明sequenceName
和 allocationSize
@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/
我有两个使用生成值的实体类 @Entity @SequenceGenerator(allocationSize = 1, initialValue = 1000, name = "idgen") pu
我使用 SequenceGenerator 和 generatedValue 以及序列“seq_user_hierarchy”在 ID 字段中执行“select nextval('NAME_OF_SE
我在我的oracle数据库中添加了序列和触发器,然后我从数据库创建了实体类,但它并没有在实体类中创建@sequencegenerator。我将 netbeans 与 glassfish 服务器和 ec
今天我的行为很奇怪。我已经声明了一个带有使用 @SequenceGenerator 的主键的模型: @SequenceGenerator(name="EMP_SEQ_GEN", sequenceNam
我的应用程序已将 JPA 与 Hibernate 供应商和 Oracle 11G DB 一起使用。 在这里,我在我的 MST_EMP 表上使用 native 查询,如下所示。 Query quer
我想知道如何为 JPA 创建我自己的自定义 ID 生成器。我不想只创建一个数字增量器生成器,而是创建一个区分大小写的字母数字生成器,类似于 URL 缩短器跟踪站点的方式。 例如,URL 缩短器不使用数
我想利用 SequenceGenerator 并从序列生成器中获取下一个值。我想避免前往数据库并依靠序列生成器为我提供唯一值。此外,我使用该值在显示字段中显示唯一 ID,而不保留对象。 最佳答案 它适
我有以下代码: @Entity @Table(name = "my_table", schema = "my_schema") @SequenceGenerator(name = "my_table_
javadoc 说 A unique generator name that can be referenced by one or more classes to be the generator
是否可以在 Hibernate 实体类中使用 2 个序列生成器。我想在我的情况下使用两个序列生成器,一个用于主键,另一个用于简单字段。我怎样才能达到同样的效果? @Data @Table(name="
我已经编写了自己的 IdGenerator: public class AkteIdGenerator implements IdentifierGenerator { public Seria
我将 JPA2 与 Hibernate 一起使用,并尝试为我的实体引入一个公共(public)基类。到目前为止,它看起来像这样: @MappedSuperclass public abstract c
我正在学习 JPA,但对 @SequenceGenerator 感到困惑注释。 据我了解,它会自动为实体的数字身份字段/属性分配一个值。 Q1.这个序列生成器是利用数据库不断增加的数值生成能力还是自己
我对 @SequenceGenerator 有疑问: @SequenceGenerator(name="pk_user_id", sequenceName="seq_user_id", allocat
我尝试使用内存中的 H2 DB 来测试某些实体的持久性,但我认识到 @SequenceGenerator 永远不会按应有的方式被调用,无论是在构建平台运行时还是在在 Eclipse 中使用 RunAs
有一个 oracle 用户,其中一些对象在其他用户之间是通用的。因此,application.yml 如下所示: jpa: hibernate: ddl-auto: updat
我实际上正在尝试学习 JPA,但我在使用@SequenceGenerator 时遇到了一些麻烦。 我将 derby 嵌入式数据库与 EclipseLink 一起使用,我正在尝试将 SequenceGe
我正在 Oracle DB 中插入一些记录。为了独特性,我使用 SequenceGenerator。下面是代码: public class XxspPoInLineLocqty implements
我正在尝试使用 PostgreSQL 的 IDENTITY 策略设置序列的分配大小和初始值。这不会产生我预期的 SQL,但是将策略更改为 SEQUENCE 是可行的。这是故意的吗? id: i
我有一个实体,它有一个 ID 字段: @Id @Column(name = "`U##ID_VOIE`") @GeneratedValue(generator = "VOIE_SEQ") privat
我是一名优秀的程序员,十分优秀!