首页 > 解决方案 > Spring中的数据转换

问题描述

我是这里的 Spring 新手,当我使用长数据类型(用于存储时间戳)时,它会在 SQL 中转换为中等文本,这会导致我的代码出现一些问题。有什么解决办法吗?前任:

@Column(columnDefinition = "long default 0")
private long loginfailedtime;

@Column(columnDefinition = "long default 0")
private long lastlogintime;

@Column(columnDefinition = "long default 0")
private long otp_timestamp;

在此处输入图像描述

标签: sqlspring-data-jpa

解决方案


由于您要存储的值是时间,我建议使用 Date 类型的实例。

    @Column(columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP")   
    private Date loginfailedtime;
    @Column(columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP")   
    private Date lastlogintime;
    @Column(columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP")   
    private Date otp_timestamp;

另外,如果要使用long,在列定义中使用 long ,其中应提及与表对应的数据类型。

columnDefinition:为列生成 DDL 时使用的 SQL 片段。

例如,

@Column(name="EMP_PIC", columnDefinition="BLOB NOT NULL")

在 JAVA 8 中,我们提供了以下映射。

@Column(name = "local_time", columnDefinition = "TIME")
private LocalTime localTime;
 
@Column(name = "local_date", columnDefinition = "DATE")
private LocalDate localDate;
 
@Column(name = "local_date_time", columnDefinition = "TIMESTAMP")
private LocalDateTime localDateTime;

在这里探索更多 => https://www.baeldung.com/jpa-java-time


推荐阅读