gpt4 book ai didi

jpa - 将时间戳字段持久化为日期还是长?

转载 作者:行者123 更新时间:2023-12-04 18:48:32 25 4
gpt4 key购买 nike

我需要就持久化时间戳的做法达成共识,特别是使用 java.util.Date 的利弊与使用 long 相比.

本次讨论范围:

  • 业绩
  • 查询灵活性(例如日期范围)
  • 编码和查询中的任何风险
  • 可移植性(例如迁移到其他数据库)

  • 关于我自己:
    我认为自己是 JPA 的初学者,偶尔涉足其中,直到现在还无法将其应用于生产级项目。在我当前的项目中,我 promise 通过 JPA 调用使用 ObjectDB(嵌入式)。

    最佳答案

    以下类演示了在 JPA 中持久化时间戳的 3 种可能方法:

    @Entity
    public class Timestamps {
    private java.sql.Timestamp ts1;
    private @Temporal(TemporalType.TIMESTAMP) java.util.Date ts2;
    private long ts3;
    :
    }

    关于性能和内存消耗,ts3 效率更高一些。

    ts3 使用起来可能不如 ts1 和 ts2 方便(在 ObjectDB 数据库资源管理器、报告等中)。

    所有三个都支持基本查询,例如按日期范围检索,但 ts3 不支持在查询中提取日期和时间部分(YEAR、MONTH 等)。

    预计所有这些表格都是可移植的。

    ts1 和 ts2 实际上是等价的。

    更多详细信息在 ObjectDB manual 中提供.

    关于jpa - 将时间戳字段持久化为日期还是长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9922473/

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