在hibernate中对日期使用条件API的限制

在hibernate中对日期使用条件API的限制,hibernate,jakarta-ee,criteria-api,Hibernate,Jakarta Ee,Criteria Api,情况是这样的。SQL server中的日期格式不同于oracle。在SQL server中,它存储为时间戳。Restriction.eq、Restriction.lt、Restriction.gt如何在日期对象上工作?有没有办法只使用日期而不使用时间?根据,您可以使用限制。ltProperty和日期字段的相关限制,Hibernate将尽力解析它们 如果这种方法不起作用,您可以始终使用restrictions.sqlRestriction在本机SQL中编写限制,以便进行相等性检查,我使用Restr

情况是这样的。SQL server中的日期格式不同于oracle。在SQL server中,它存储为时间戳。Restriction.eq、Restriction.lt、Restriction.gt如何在日期对象上工作?有没有办法只使用日期而不使用时间?

根据,您可以使用
限制。ltProperty
和日期字段的相关限制,Hibernate将尽力解析它们


如果这种方法不起作用,您可以始终使用
restrictions.sqlRestriction

在本机SQL中编写限制,以便进行相等性检查,我使用Restriction.between(“dateFromDB”、myDateObjSt、myDateObjEnd”)如何?其中myDateObjSt是时间为0:0:0.000的日期,myDateObjEnd是时间为23:59:59.999的日期??能否请您重新表述您的问题?我不确定你在问什么。我有一个日期对象,我想比较数据库中的日期列是否与我的日期对象相等。但问题是时间也要考虑在内。所以为了只比较date,我考虑使用Restriction.between(“dateFromDB”,myDateObjSt,myDateObjEnd)。myDateObjSt和myDateObjEnd都是我的日期对象,除了时间。myDateObjSt的时间为0:0:0.000,myDateObjEnd的时间为23:59:59.999。是的,这可能是最简单的选择。我可以想到的另一种方法是直接在本机
sqlRestriction
中使用数据库的日期/时间操作。后者显然使转移到其他数据库供应商变得更加困难。