Hibernate + Mysql:数据截断:日期时间值不正确

时间:2016-10-11 10:14:53

标签: java mysql spring hibernate

所有

我正在使用Spring,Hibernate和MySQL将一些记录保存到我稍后处理的队列中。

由于我使用的是Java 8,因此建议使用JodaTime库而不是Java SQL Date c.f. here

模型

    @Entity
@Table(name = "order_job_queue")
public class CancelReward implements Serializable {
    private static final long serialVersionUID = 1L;


    @Id
    @GeneratedValue
    @Column(name = "id")
    private int id;

    @Column(name = "processed_state")
    private String processedState;

    @Column(name = "order_reference_id")
    private int orderReferenceId;

    @Column(name = "creation_date", columnDefinition = "DATETIME DEFAULT")
    private DateTime creationDate;

    @Column(name = "last_checked_date", columnDefinition = "DATETIME DEFAULT")
    private DateTime lastCheckedDate; ...

@PrePersist
protected void onCreate() {
    creationDate = new DateTime().toDateTime();
}

@PreUpdate
protected void onUpdate() {
    lastCheckedDate = new DateTime().toDateTime();
}

表格

`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`processed_state` VARCHAR(45) NOT NULL,
`order_reference_id` INT UNSIGNED NOT NULL,
`creation_date` DATETIME NOT NULL,
`last_checked_date` DATETIME NOT NULL,

依赖版本

  • Spring Framework - 4.3.3
  • Hibernate - 4.3.5
  • Hibernate JPA2 API - 1
  • MySQL Connector - 5.1.40

当我尝试保存实体时,我得到这个堆栈跟踪抱怨截断。

  

数据截断:日期时间值不正确:'��'对于列' creation_date'在第1行   处理请求时出错:无法执行语句; SQL [不适用];嵌套异常是org.hibernate.exception.DataException:无法执行语句

我也尝试过使用Java SQL Date,不知道如何解决这个问题.a

1 个答案:

答案 0 :(得分:1)

尝试在java中使用标准日期:

import java.util.Date;

java.sql.Timestamp也应该有用,但我自己从未尝试过。