Я пытаюсь найти записи в спящем режиме на основе объекта DateTime, где столбец startDate меньше, чем DateTime, а столбец endDate больше, чем DateTime. Я пытаюсь использовать этот код, используя код нижеHibernate 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 ТОЛЬКО ЕСЛИ конец периода группы не пуст (т. Е. Если это открытый период, который еще не закончился). Существует ли ограничение XOR/в спящем режиме? Есть ли способ сделать это или мне просто нужно отфильтровать результаты?
Можете ли вы использовать обычный запрос HPQL в соответствии с критериями? Это выглядело бы как 'SELECT feg FROM FinancialEventGroup feg WHERE feg.groupPeriodStart <: event AND feg.gropPeriodEnd>: event" – Antoniossss
Вы пытались создать sql в своем проекте sqldeveloper? –