Java Null将被持久化到DB for dateTime参数中

Java Null将被持久化到DB for dateTime参数中,java,jpa,spring-boot,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(n

我有一个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
。谁能看一下,告诉我哪里做错了

我在控制台中获得绑定参数[1]作为[TIMESTAMP]-[null]。我用过postGres的弹簧靴

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

Wow

this.dateTimeStamp=dateTimeStamp;
应该是

this.dateTimeStamp = DatetimeStamp;
                     ^
检查IDE


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

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

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

您希望我们猜测
ServiceHealth
的构造函数实现?@M.Deinum:我正在使用JPA存储库将数据保存到数据库中。无论您在做什么
new ServiceHealt
都将传递一个
字符串,该字符串应作为
日历
。。。很明显,你在构造函数中做了什么(或者没有做什么,这可以解释
null
)。现在请检查我已经添加了构造函数。发布的代码甚至不会编译。。。您不能将
字符串
分配给
日历
字段。此日期时间戳是一个实例变量。请检查。@IftekharKhan补充了一点解释。
public ServiceHealth(String serviceName, char isActive, String dateTimeStamp)     {