java - 在 MySQL 中保留 java LocalDate

标签 java mysql jpa jdbc mysql-connector

我正在使用 SE 8、MySQL 5.6 (Connector/J 5.1)、JPA 2.1 编写 Java 客户端应用程序。当我尝试保留具有 ID(int 自动递增)、日期(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
    AttributeConverter<LocalDate, Date> {
    @Override
    public java.sql.Date convertToDatabaseColumn(LocalDate entityValue) {
        return java.sql.Date.valueOf(entityValue);
    }

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

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

关于java - 在 MySQL 中保留 java LocalDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28897303/

相关文章:

java - Jbutton setTooltip() 作为 ImageIcon?

java - 在 Spring Data JPA 字段中使用投影错误

java - 如何在 JPA 对象上使用 Java Stream API?

java - HttpServletRequest 完成 URL

java - 错误 : Failed to resolve: androidx. annotation.annotation :1. 1.0:受影响的模块:app

java - spring-mvc Hibernate 中 Autowiring 依赖项失败

c# - 在集合中找不到参数 '?user_email'

php - 如何使用此查询创建此多维数组(最终变成 JSON)

php - 从类中的函数获取具有特定内容的变量

java - Mockito findByIdOrNull 问题