Я бы сказал, что самое простое решение - создать свой собственный диалект HSQLDB, расширяя существующий диалект HSQLDB. Затем в конструкторе зарегистрируйте функцию для обработки datediff (date1, date2) для преобразования в datediff (интервал, date1, date2), при условии, что интервал будет статическим значением. Что-то вроде этого:

я проблема в том, что синтаксис для datediff в mysql отличается от синтаксиса в hsqldb:

mysql: datediff(date1,date2)
hsqldb: datediff(interval,date1,date2)

Диалекты в спящем режиме обычно решают эти проблемы, однако я, похоже, не могу найти способ создать ограничение для датированных различий для спящего режима. Это очень неприятно, потому что мешает мне проводить модульное тестирование с базой данных hsql в памяти, поскольку мне приходится «жестко кодировать» формат datediff в выражении sql.

Если у кого-то есть совет по этому вопросу, он будет очень признателен.

Ответы на вопрос(1)

Решение Вопроса

что самое простое решение - создать свой собственный диалект HSQLDB, расширяя существующий диалект HSQLDB. Затем в конструкторе зарегистрируйте функцию для обработки datediff (date1, date2) для преобразования в datediff (интервал, date1, date2), при условии, что интервал будет статическим значением. Что-то вроде этого:

registerFunction( "datediff", new SQLFunctionTemplate( StandardBasicTypes.INTEGER, "datediff(interval, ?1, ?2)" ) );

Ваш ответ на вопрос