Я создаю собственный запрос для Hibernate, используя следующий код
final Query countQuery = entityManager.createNativeQuery( countSql );
if ( countCriteria.getStartDate() != null ) {
final String startDate = countCriteria.getStartDate().toString();
countQuery.setParameter( START_DATE_PARAMETER, startDate );
}
Где startDate в моем классе - org.joda.time.DateTime
, а toString()
возвращает "2019-05-13".
Эти параметры запроса отлично работают в производственной среде, работающей на MS Sql Server.(ick!)
Теперь модульный тест запущен для HSQLDB.Я предоставляю те же значения, и он выдает:
javax.persistence.PersistenceException: org.hibernate.exception.DataException: data exception: invalid datetime format
Когда он пытается выполнить запрос.
Поскольку параметр отформатирован точно так же, я предполагаю, что проблемаформат строки даты для HSQLDB.
Итак, что теперь?Как мне двигаться вперед с этим?Я проверил формат setParameter, который принимает TEMPORAL или что-то еще, но это не сработает в течение времени JODA.
Я уже говорил с моим техническим руководителем о том, что не нужно использовать собственные запросы, а использовать запросы гибернации, ноэто упало на слух.У меня есть другой вариант, чтобы мне не пришлось сражаться с моим техническим лидером, чтобы написать модульные тесты для наших DAO?