在MySQL中持久化java LocalDate

前端之家收集整理的这篇文章主要介绍了在MySQL中持久化java LocalDate前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在编写一个java客户端应用程序,使用:SE 8,MySQL 5.6(Connector / J 5.1),JPA 2.1.当我尝试持有具有ID(int自动增量),date(LocalDate)的实体时.抛出异常说:

Internal Exception: com.MysqL.jdbc.MysqLDataTruncation: Data truncation: Incorrect date value: '\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1B"H\xB2\x0C\x00\x00xpw\x07\x03\x00\x00\x07\xDF\x03\x06x' for column 'date' at row 1

MysqL(我的意思是连接器)不支持新的日期和时间API或什么.如果是这样我该怎么办?

@Entity
@Table(schema="app")
public class Run implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;                     //number of connections

    private LocalDate date;
最佳答案
注册自定义转换器应该可以帮助您解决问题

@Converter(autoApply = true)
public class LocalDatePersistenceConverter implements
    AttributeConvertersql.Date convertToDatabaseColumn(LocalDate entityValue) {
        return java.sql.Date.valueOf(entityValue);
    }

    @Override
    public LocalDate convertToEntityAttribute(java.sql.Date databaseValue) {
        return databaseValue.toLocalDate();
    }
}

更多关于转换LocalDate info以及更多关于使用converters的信息

原文链接:https://www.f2er.com/mysql/434195.html

猜你在找的MySQL相关文章