【问题标题】:Date in Hibernate休眠中的日期
【发布时间】:2026-01-20 17:05:01
【问题描述】:

我有一个关于 Java Hibernate 和 SQL 的问题

我想将日期字段添加到我的实体类。我在我的 DDL 脚本 (data.sql) 中使用了以下日期格式 - 'yyyy-mm-dd' 现在我不知道该日期要导入哪个类。我应该从 java.util.* 还是从 java.sql.* 导入 Date

我应该为这个专栏添加哪些注释

提前谢谢你

【问题讨论】:

  • 不要在您的实体中使用java.sql 类,并尽量避免使用java.util 类。如果您可以使用javax.time
  • 我应该使用 javax.time 吗?
  • @Column(name = "pub_date") @Temporal(TemporalType.DATE) 私人日期 pubDate;
  • 我做了这样的事情,但它在我的 SQL 日志中显示错误
  • 不要使用Date类。它们设计不佳且早已过时。而是使用来自java.time, the modern Java date and time APILocalDate

标签: java sql spring hibernate


【解决方案1】:

在您的实体中导入 java.util.Date 并仅使用 @Column 注释。在 SQL 中,您可以使用列数据类型作为 DATETIME 或 TIMESTAMP。现在,尝试保存对象。它会保存。

【讨论】:

    【解决方案2】:

    使用 java.util.Date 和注解 @Temporal(TemporalType.DATE)

    导入 java.util.Date;

    课堂演示{

    @Temporal(TemporalType.DATE)

    私人日期日期字段;

    }

    【讨论】:

      【解决方案3】:

      1.在数据库中添加另一个字段(date_of_birth)

      1. 添加你的实体

        @Column(name="date_of_birth") @Temporal(TemporalType.TIMESTAMP) 私人日期 dateOfBirth; 导入 java.util.Date;

      1. 添加getter和setter

        公共日期 getDateOfBirth() { 返回出生日期; } 公共无效 setDateOfBirth(日期 dateOfBirth){ this.dateOfBirth = dateOfBirth; }

      2. 将其添加到 toString

        @覆盖 公共字符串 toString() { 返回“客户 [id=" + id + ", firstName=" + firstName + ", lastName=" + 姓氏 + ", email=" + 电子邮件

        • ", dateOfBirth=" + dateOfBirth + "]"; }

      【讨论】: