我的实体类:
@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 */
}
我正在使用joda时间来约会。当我坚持下去时,会抛出这个异常:
引起:com.mysql.jdbc.MysqlDataTruncation:数据截断:第1行的列'DATE'的数据太长
我的日期字段包含此值: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。
答案 0 :(得分:1)
似乎你不能在Datetime中使用miliseconds: mysql
答案 1 :(得分:1)
在创建新表时,在SQL代码中使用Datetime
代替Date
。