gpt4 book ai didi

java - 在 JPA 中使用 @SequenceGenerator/@GenerateValue 时 - 数据库触发器是否多余/不必要?

转载 作者:行者123 更新时间:2023-12-01 09:36:19 28 4
gpt4 key购买 nike

我看到了这篇文章( JPA Entity Lifecycle Events vs database trigger ),但它并没有像我在这里那样明确地询问:

当我插入 PK 值为 (null) 的行时,是否需要有一个序列和一个触发器?

或者 JPA 会以某种方式将序列注释解释为获取 .nextVal 的信号吗?

最佳答案

如果您在主键(@Id 带注释的字段)上定义了一个序列,并使用注释 @GenerateValue 和 @SequenceGenerator 映射该序列,则可以保留具有空主键的实体。 JPA 将自动调用该序列来获取下一个值(或从其缓存中获取)。主键声明应该如下所示。

@Id
@Column(name = "TABLE_PK")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQUENCE_GENERATOR_NAME")
@SequenceGenerator(name = "SEQUENCE_GENERATOR", sequenceName = "SEQUENCE_NAME")
private Integer id;

关于java - 在 JPA 中使用 @SequenceGenerator/@GenerateValue 时 - 数据库触发器是否多余/不必要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38877428/

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