java - LocalDateTime JPA - Java 8

标签 java hibernate jpa jpa-2.0 postgresql-9.4

当我的字段被 JPA 保留时,在某些时间它会保存正确的日期广告时间,而其他时间则不会保存,只有日期是正确的,但时间为零(00:00:00)。

正确:2019年11月13日11:05:12
不正确:13/11/2019 00:00:00

我的数据库是postgresql,我的字段类型是timestamp

在java类中,我的字段注释如下:

@Column(name = "DAT_ACTION")
private LocalDateTime espDatAction;

我现在不知道发生了什么,因为应用程序的操作是相同的并且具有不同的行为

最佳答案

如果要将 LocalDate 属性存储在 DATE 列中或将 LocalDateTime 存储在 TIMESTAMP 列中,则需要自己定义到 java.sql.Date 或 java.sql.Timestamp 的映射。您可以尝试添加如下内容并重新启动应用程序,之后应该可以正确保存:

import java.time.LocalDateTime;
import java.sql.Timestamp;
 
@Converter(autoApply = true)
public class LocalDateTimeAttributeConverter implements AttributeConverter<LocalDateTime, Timestamp> {
     
    @Override
    public Timestamp convertToDatabaseColumn(LocalDateTime locDateTime) {
        return locDateTime == null ? null : Timestamp.valueOf(locDateTime);
    }
 
    @Override
    public LocalDateTime convertToEntityAttribute(Timestamp sqlTimestamp) {
        return sqlTimestamp == null ? null : sqlTimestamp.toLocalDateTime();
    }
}

关于java - LocalDateTime JPA - Java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58839896/

相关文章:

postgresql - 使用无法访问 hibernate 创建的 Google Cloud SQL (Postgres) 表

java - Hibernate如何为实体类配置模式名称

使用相关实体的主键过滤结果的 Hibernate 条件查询

hibernate - org.hibernate.hql.ast.QueryTranslatorImpl 列表注意 : firstResult/maxResults specified with collection fetch; applying in memory

java - 不能从最终类继承

java - 启动和停止主机插件

java - Flyway Java 回调

java - 如何在spring-webflux WebFilter中正确使用slf4j MDC

java - 确定哪个实体导致了乐观锁异常

java - Hibernate Criteria API - 添加标准 : string should be in collection