Java hibernate查询中的时间戳类型更改为日期类型
我有一个名为A的实体,它有一个createdDate,其类型为@Temporal(TemporalType.TIMESTAMP) 我试图检索具有特定createdDate的所有行。我在请求中附加了一个特定的日期,并打印了该日期,它看起来很像“2021-02-11 12:14:02.425”,所有值都达到毫秒 但是来自hibernate的sql,where子句中createdDate的值设置为'11-Feb-21'。因此,我找不到任何行,因为createdDate在db中保存为2021-02-11 12:14:02.425Java hibernate查询中的时间戳类型更改为日期类型,java,hibernate,date,timestamp,Java,Hibernate,Date,Timestamp,我有一个名为A的实体,它有一个createdDate,其类型为@Temporal(TemporalType.TIMESTAMP) 我试图检索具有特定createdDate的所有行。我在请求中附加了一个特定的日期,并打印了该日期,它看起来很像“2021-02-11 12:14:02.425”,所有值都达到毫秒 但是来自hibernate的sql,where子句中createdDate的值设置为'11-Feb-21'。因此,我找不到任何行,因为createdDate在db中保存为2021-02-11
public Response getByCreatedDate(Request req) {
List<AResponse> aList = aRepository.findByIdAndCreatedDate(req.getId(), req.getCreatedDate());
}
公共响应getByCreatedDate(请求请求请求){
List aList=aRepository.findbyiandcreateddate(req.getId(),req.getCreatedDate());
}
我不熟悉Hibernate,我试图找到一些关于它的有用信息,但没有找到。我是否必须使用这些特定的日期和时间显式地创建一个新日期,并将其发送到“findByIdAndCreatedDate”方法?如果有人有同样的经验,你能提供一些信息吗?你使用的是
java.util.Date
?哪一个Hibernate版本?询问是因为Date
的设计很差,而且很早就过时了,您应该更喜欢使用Hibernate 5支持。如果不知道具体情况,我不希望这样工作。日期和时间戳不是一回事。因此,要使findByIdAndCreatedDate
工作,您可能需要将时间戳编码为2021-02-11 00:00:00.000(包括)和2021-02-12 00:00:00.000(不包括)之间(在某个时区)。非常感谢您的建议,我研究了很长时间,仍然找不到解决方案,我想我必须采取其他方式。显然相关: