猿问

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

我正在使用 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;

}


30秒到达战场
浏览 169回答 3
3回答

斯蒂芬大帝

如果你有 :public class Person {&nbsp; &nbsp; private LocalDate birthdate;}您可以使用转换器并@Convert(converter = LocalDateConverter.class)在字段上使用注释@Converter(autoApply=true)public class LocalDateConverter implements AttributeConverter<LocalDate, Date> {&nbsp; &nbsp; @Override&nbsp; &nbsp; public Date convertToDatabaseColumn(LocalDate d){&nbsp; &nbsp; &nbsp; &nbsp; return d !=null ? Date.valueOf(d) : null;&nbsp; &nbsp; }&nbsp; &nbsp; @Override&nbsp; &nbsp; public LocalDate convertToEntityAttribute(Date d){&nbsp; &nbsp; &nbsp; &nbsp; return d !=null ? d.toLocalDate() : null;&nbsp; &nbsp; }}
随时随地看视频慕课网APP

相关分类

Java
我要回答