为了账号安全,请及时绑定邮箱和手机立即绑定

Hibernate - java.time.LocalDate 不能转换为

Hibernate - java.time.LocalDate 不能转换为

30秒到达战场 2021-06-29 18:47:02
我正在使用 Maven、Java 和 Hibernate 创建一个简单的应用程序我知道有几个关于这个问题,但我想知道究竟是为什么这个错误弹出,当我使用最新版本的副本的org.hibernate.Hibernate中,核心是5.3.4。根据我读过的问题,我不应该使用 hibernate-java8 依赖项,因为 hibernate-core 具有内置的 java 8 支持,而 hibernate-java8 在 Maven 中已弃用。知道出了什么问题吗?这是一些片段service.addPerson("Rob","Thomas",LocalDate.of(1985,5,5));方法声明将是public Integer addPerson(String firstName, String lastName, LocalDate birthdate){   Session sesh = factory.openSession();  Transaction trans = null;try{    tx = sesh.beginTransaction();   person = new Person(firstName,lastName,birthdate);   personID = (Integer) session.save(person);   tx.commit();} catch (...) {}finally{  session.close();  }return personID;}
查看完整描述

3 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

如果你有 :


public class Person {

    private LocalDate birthdate;

}

您可以使用转换器并@Convert(converter = LocalDateConverter.class)在字段上使用注释


@Converter(autoApply=true)

public class LocalDateConverter implements AttributeConverter<LocalDate, Date> {

    @Override

    public Date convertToDatabaseColumn(LocalDate d){

        return d !=null ? Date.valueOf(d) : null;

    }


    @Override

    public LocalDate convertToEntityAttribute(Date d){

        return d !=null ? d.toLocalDate() : null;

    }


}


查看完整回答
反对 回复 2021-07-07
  • 3 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信