0

我正在尝试根据 DateTime 对象在休眠中查找条目,其中 startDate 列小于 DateTime 并且 endDate 列大于 DateTime。我正在尝试使用下面的代码

    DetachedCriteria crit = DetachedCriteria.forClass(FinancialEventGroup.class);
    crit.add(Property.forName("groupPeriodStart").lt(eventDate));
    crit.add(Property.forName("groupPeriodEnd").gt(eventDate));

但这不应该返回 null 。有什么建议么?其他 DO 访问方法正在工作,所以这不是休眠配置的问题我怀疑这是分离标准设置的问题

编辑:我发现我的问题部分是因为下面的帮助。我面临另一个问题,我希望 eventDate 小于 groupPeriodEnd 仅当组期结束不为空时(即,如果这是一个尚未结束的开放期)。休眠中是否有异或/任何一个限制?有没有办法做到这一点,还是我只需要过滤结果?

4

2 回答 2

0

您的标准将始终生成返回 0 条记录的查询。无论数据类型如何,表中的一个字段不能同时大于某个值并小于某个值...您可能希望使用leorge代替lt/ gt...

于 2013-08-10T20:54:16.060 回答
0

使用限制而不是属性以及 ge/le(>= / <=)

 DetachedCriteria crit = DetachedCriteria.forClass(FinancialEventGroup.class);
    crit.add(Restrictions.le("groupPeriodStart",eventDate);
    crit.add(Restrictions.ge("groupPeriodEnd",eventDate);
于 2013-08-10T20:55:35.760 回答