Итак, я протестировал этот небольшой обходной путь, о котором упоминал ранее, и он работает с системой типов 5.0-5.3. Предполагая, что ваш класс меток времени в Java равен java.time.Instant
, это может работать
if (timestamps == null) {
query.setParameter("ts", java.time.Instant.EPOCH);
}
query.setParameter("ts", timestamp);
С этого момента ваша следующая проблема заключается в закрытии круглых скобок до OR
здесь:
... (o.createdAt <:#{#orgSearch.createdTime.endDateTime}) OR :#{#orgSearch.createdTime.endDateTime} IS NULL
Все это предполагает, что вы создаете запрос, используя entityManager.createNativeQuery(...)
самостоятельно, или, возможно, используете именованный собственный запрос, поскольку эти реализации, сгенерированные Spring, не могут добавить обходной путь для вас.