gpt4 book ai didi

java - JPA:如何设置历史实体的 key

转载 作者:行者123 更新时间:2023-12-02 12:29:13 24 4
gpt4 key购买 nike

在 Spring Boot/Spring Data 中的 JPA 中,我想设置一个实体类。

业务需求是对每年存在一次的文档的处理进行历史记录。

处理是批量执行的:因此所有文档都一起处理:对于每个处理序列,数据库中的所有文档都有一个processingTimestamp

稍后,我只想访问最近处理的文档,但保留以前处理的文档以供引用。

我看到以下替代方案:

  1. 使用复合键

    @Id
    private String documentId;

    @Id
    private String yearOfDocumentCreation;

    @Id
    private java.sql.Timestamp processingTimestamp;
  2. 使用自动生成的 key

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    private String documentId;

    private String yearOfDocumentCreation

    private java.sql.Timestamp processingTimestamp;

哪种替代方案更好/最佳实践

  1. 处理(例如,将之前从数据库读取的文档列表作为批量存储,并避免数据库中出现重复项)
  2. 性能

或者我是否错过了其他替代方案/方面?

最佳答案

如果您需要为此表创建外键,我建议使用单个长主键。为了避免重复,您可以对 3 个必需的列进行唯一约束。

关于java - JPA:如何设置历史实体的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45364161/

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