所有
我正在使用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,
依赖版本
当我尝试保存实体时,我得到这个堆栈跟踪抱怨截断。
数据截断:日期时间值不正确:'��'对于列' creation_date'在第1行 处理请求时出错:无法执行语句; SQL [不适用];嵌套异常是org.hibernate.exception.DataException:无法执行语句
我也尝试过使用Java SQL Date,不知道如何解决这个问题.a
答案 0 :(得分:1)
尝试在java中使用标准日期:
import java.util.Date;
java.sql.Timestamp
也应该有用,但我自己从未尝试过。