2016-10-11 101 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

相關問題