我无法在JPA 2.4中使用@Converter工作。我已经按照here和here上的示例进行了操作。当我尝试持久化我的实体时,它失败并出现以下异常。有没有人成功地做到这一点?有什么我应该注意的吗?
导致:org.apache.openjpa.persistence.PersistenceException:数据截断:日期时间值不正确:'\ xAC \ xED \ x00 \ x05sr \ x00 \ x16org.joda.time.DateTime \ xB8
转换器类
@Converter
public class DateTimeConverter implements AttributeConverter<DateTime, Timestamp> {
@Override
public Timestamp convertToDatabaseColumn(DateTime dateTime) {
return new Timestamp(dateTime.getMillis());
}
@Override
public DateTime convertToEntityAttribute(Timestamp date) {
return new DateTime(date);
}
}
用法如
@Column(name = "created_on")
@Convert(converter = CustomConverter.class)
private DateTime createdOn;
答案 0 :(得分:0)
这里有几个错误的东西:
您获得的异常表明该列中包含的当前值是序列化的org.joda.time.DateTime。
字段的类型应该是转换器的convertToEntityAttribute
方法的返回类型,因此在您的情况下DateTime
而不是Date