带有java.time.LocalDate和DATE()的Hibernate 4构造需要java.util.DATE
我正在尝试在我的应用程序中使用Java 8的带有java.time.LocalDate和DATE()的Hibernate 4构造需要java.util.DATE,java,hibernate,date,persistence,Java,Hibernate,Date,Persistence,我正在尝试在我的应用程序中使用Java 8的LocalDate和LocalDateTime。我正在使用Hibernate4.3.5和Spring。我在这里学习了这个有趣的教程和所有的工作,但是我在使用DATE()construct时遇到了一个问题 当我尝试这样做时: SELECT * FROM TABLE WHERE DATE(data)=DATE(:data) 我得到了一个IllegalArgumentException,因为setParameter期望的是java.util.Date,而
LocalDate
和LocalDateTime
。我正在使用Hibernate4.3.5和Spring。我在这里学习了这个有趣的教程和所有的工作,但是我在使用DATE()
construct时遇到了一个问题
当我尝试这样做时:
SELECT * FROM TABLE
WHERE DATE(data)=DATE(:data)
我得到了一个
IllegalArgumentException
,因为setParameter期望的是java.util.Date
,而不是java.time.LocalDate
,如果我不使用Date()构造,它期望的是java.time.LocalDateTime
,我已经实现了hibernate转换器,但我找不到一个好的解决方案(从LocalDate
转换到java.util.Date
对我来说不太合适),有人知道如何解决这个问题吗?Date-Date=Date.from(LocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant();().google Search的第一个匹配项从LocalDate转换为java.util.Date不适合我,我已经在我的问题中写了,我很感兴趣为什么我不能在这里使用LocalDate。“不适合我”这可能意味着很多事情。你是说它不好吗?如果是,为什么?因为hibernate知道,当我使用完整日期和时间时,我想使用LocalDateTime,但当我只想比较日期时,它仍然尝试使用java.util.date。