javacom。mysql。jdbc。MysqlDataTruncation:数据截断:第1行“DATE”列的数据太长
我的实体类:
@Entity
@Table(catalog = "emp", name = "person")
@XmlAccessorType(XmlAccessType.FIELD)
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
/**
*/
@Column(name = "ID", nullable = false,length = 50)
@Basic(fetch = FetchType.EAGER)
@Id
@XmlElement
String id;
/**
*/
@Column(name = "ADDRESS", length = 50)
@Basic(fetch = FetchType.EAGER)
@XmlElement
String address;
/**
*/
@Column(name = "EMAIL", length = 50)
@Basic(fetch = FetchType.EAGER)
@XmlElement
String email;
@Column(name = "DATE")
@Basic(fetch = FetchType.EAGER)
@XmlElement
DateTime date;
/**
*/
/*getters and setters */
}
我在用乔达的时间约会。当我坚持时,它抛出以下异常:
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'DATE' at row 1
我的日期字段包含此值:2015-09-02T16:24:05.226+04:00
下面是它在db中持久化的代码:
public Person save(Person person) {
Person currentPerson = entityManager.find(Person.class,
person.getId());
if (currentPerson != null) {
entityManager.detach(currentPerson);
person =entityManager.merge(person);
} else {
entityManager.persist(person);
}
return person;
}
我正在使用hibernate/jpa和mysql。我的数据库是基于我的实体类创建的。我的日期在实体类中是datetime类型,但在数据库中是tinyblob类型
# 1 楼答案
创建新表时,在SQL代码中使用
Datetime
而不是Date
# 2 楼答案
似乎不能将毫秒与日期时间结合使用: mysql