79260292

Date: 2024-12-07 09:05:15
Score: 0.5
Natty:
Report link

Here is a working solution, but I'm not sure if it's ok.

if (criteria.getActive() != null) {
    specification = specification.and((root, query, builder) -> {
        HibernateCriteriaBuilder hb = (HibernateCriteriaBuilder) builder;
        JpaExpression<Duration> oneMinute = hb.durationScaled(root.get(Activity_.duration), Duration.ofMinutes(1));
        Expression<ZonedDateTime> result = hb.addDuration(root.get(Activity_.dateStart), oneMinute);
        if (criteria.getActive()) {
            return builder.greaterThanOrEqualTo(result, ZonedDateTime.now());
        }

        return builder.lessThan(result, ZonedDateTime.now());
    });
}
Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: RexusGo