当我的字段被 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/