Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.sql.Date未插入到数据表中_Java_Hibernate - Fatal编程技术网

java.sql.Date未插入到数据表中

java.sql.Date未插入到数据表中,java,hibernate,Java,Hibernate,我有一个包含以下内容的类: @Column(name = "end_date") private Date endDate; 这是塞特 public void setEndDate() { endDate = new java.sql.Date(Calendar.getInstance().getTime().getTime()); System.out.println(endDate); } 当我调用setter并再次检查该值是否正确时,一切正常。(甚至getEndDate

我有一个包含以下内容的类:

@Column(name = "end_date")
private Date endDate;
这是塞特

public void setEndDate() {
    endDate = new java.sql.Date(Calendar.getInstance().getTime().getTime());
    System.out.println(endDate);
}
当我调用setter并再次检查该值是否正确时,一切正常。(甚至
getEndDate().getClass()
)。 但是,当我将对象保存到PostgreSQL(
myObject.persist()
)中时,“结束时间”列上没有值。其他值是正确的

有人知道有什么问题吗

另外,我必须提到hibernate被设置为创建SQL表

塞特和盖特:

public void setEndDate(Date endDate) {
    setEndDate();
}
public Date getEndDate() {
    return endDate;
}

我在本例中使用java.util.Date,并将@Column的映射更改为

@Column(name = "end_time")
private Date endDate = new Date();

public void setEndDate(Date endDate) {
  this.endDate = endDate;
}

public Date getEndDate() {
    return endDate;
}
  • 导入java.util.Date而不是导入java.sql.Date
  • 根据以下代码分配当前日期
  • 如果用户需要更改,则在创建此实体的对象时指定默认日期,然后在运行时使用setter
  • 试试这个,会有用的

    @Column(name = "END_TIME")
    private Date endDate = new Date();
    
    public void setEndDate(Date endDate) {
      this.endDate = endDate;
    }
    
    public Date getEndDate() {
        return endDate;
    }
    

  • 表中的列名为END_TIME,@column标记中的列名为END_date,这一点是否正确?这可以解释…:-)对于私有字段,hibernate将使用JavaBean标准设置器和获取器。你能在那个bean上发布其他的setter(接受参数)和getter吗?OleV.V,是我写的end_time大写@AndyN,我没有一个带参数的setter,我想这是个问题,我编辑了te post,并添加了setter/getter。还是没有working@Adyzds@Olev.V并不是在评论这种情况。注释是
    end\u date
    。如果列为
    end\u time
    ,则注释不匹配。相同的事情。数据库中没有值我看到您在列上标记了end_date,但在end_TIME中检查了值,有什么问题吗?\n我在上面告诉过您,我将列名大写。在数据库中,它是“结束时间”,我编辑答案并将@列更改为结束时间,从逻辑上讲,此列名不区分大小写。它正在工作,谢谢!还是不明白为什么我的方法不起作用