如何在 JPA 实体中存储小时:分钟并跳过秒和毫秒

问题描述 投票:0回答:2

如何让日期仅存储到小时:分钟并在以下用户实体中跳过秒和毫秒

import jakarta.persistence.Basic;
import jakarta.persistence.Temporal;
import jakarta.persistence.TemporalType;

class User {

    @Basic
    @Temporal(TemporalType.DATE)
    java.util.Date birthDate

}
spring-boot spring-data-jpa
2个回答
0
投票

您可以使用java.time.LocalDate,数据库中该列的类型是Date。

如果您在数据库中设置类型为日期时间,则会保存 yy-mm-dd 00:00:00。

但这不是一个大问题,JPA 会将其映射到你的类中的字段类型并且工作得很好。


0
投票

OP 想要存储小时和分钟,但不存储更多时间信息。

这在 JPA 中是不可能直接实现的,除非您愿意使用 Embeddable 将信息拆分为几列。

如果您对使用 Hibernate 专有 API 感到满意,您可以创建一个所谓的 UserType。

这很好地解释了这一点: https://theodoreyoung.wordpress.com/2012/02/07/custom-user-types-with-jpa-and-spring/

汤姆干杯。

© www.soinside.com 2019 - 2024. All rights reserved.