Null被持久存入DB for dateTime参数

时间:2017-09-05 10:42:45

标签: java jpa spring-boot

我有一个json,我正在解析它以将数据保存到数据库中。

示例Json: -

{
        "uuid":"1111170905035334",
        "serviceName":"service1",
        "timeStamp":"2017-12-12 23:12:54",
        "isActive":"Y"
}

现在我想将这些数据保存到服务表中。

Service.java

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "DATETIME_STAMP")
private java.util.Calendar dateTimeStamp; 

public ServiceHealth(String serviceName, char isActive, String DatetimeStamp) {
        this.serviceName = serviceName;
        this.isActive = isActive;
        this.dateTimeStamp=dateTimeStamp;
    }

数据类: -

java.util.Date dt = new java.util.Date();

java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String currentTime = sdf.format(dt);
System.out.println("Date Time is "+currentTime);
ServiceHealth serviceHealth = new ServiceHealth("", "",currentTime);

currentTime的值将保存为null。任何人都可以看看并告诉我哪里出错了。

我在控制台中将[TIMESTAMP] - [null]绑定参数[1]。我在postGres上使用了spring boot

我正在使用JpaRepository将数据保存到数据库中。

1 个答案:

答案 0 :(得分:1)

this.dateTimeStamp=dateTimeStamp;

应该是

this.dateTimeStamp = DatetimeStamp;
                     ^

检查IDE。

public ServiceHealth(String serviceName, char isActive, String DatetimeStamp)     {
    this.serviceName = serviceName;
    this.isActive = isActive;
    this.dateTimeStamp = dateTimeStamp;
}

这里字段serviceName和isActive填充了相同名称的参数。但是,使用参数DatetimeStamp的字段dateTimeStamp 未填充。 (但是使用旧的字段值本身 - 一个noop。)最好是重命名参数名称:

public ServiceHealth(String serviceName, char isActive, String dateTimeStamp)     {

事实上,几乎每个IDE都应标记该分配。