2016-10-11 108 views
1

所有,休眠+ MYSQL:数据截断:不正确的日期时间值

我使用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框架 - 4.3。 3
  • 休眠 - 4.3.5
  • 休眠JPA2 API - 1
  • MySQL连接 - 5.1.40

当我试图挽救实体我得到这个堆栈跟踪抱怨截断。

数据截断:不正确的日期时间值:“在行”列“CREATION_DATE” 1个 出错处理请求:无法执行语句; SQL [n/a];嵌套的例外是org.hibernate.exception.DataException:使用Java SQL日期无法执行的语句

我尝试为好,不知道如何解决这个问题one.a

回答

1

使用标准的日期尝试在Java中:

import java.util.Date; 

java.sql.Timestamp也应该工作,但我从来没有尝试过自己。

+0

谢谢,这工作。这是令人失望的JodaTime不工作考虑它实现Date.util接口:( – kaleeway

相关问题