Мы используем HSQLDB с синтаксисом базы данных Oracle (jdbc: hsqldb: mem: TestDB; sql.syntax_ora = true) для наших модульных тестов уровня данных.
(Мы понимаем, что это не идеально, и было бы лучше, если бы мы могли протестировать реальную базу данных Oracle. Однако это не вариант, поскольку мы хотим быть уверены, что можем запускать наши автоматизированные тесты где угодно. На более позднем этапе все запросы также тестируются в интеграционных тестах на реальной базе данных Oracle, которая настроена аналогично производственной базе данных.)
Есть ли способ поддержать нотацию Oracle external join (+) для запросов с HSQLDB?
По моему мнению, мы должны использовать не обозначение (+), а стандартное обозначение внешнего соединения. Однако ребята, отвечающие за настройку запросов, используют эту нотацию, поэтому общение с ними станет более трудным / подверженным ошибкам. Хотя это может быть вариантом, если решение не найдено, вопрос не в этом.
Я нашел следующую тему: http://comments.gmane.org/gmane.comp.java.hsqldb.user/5756 С упомянутым там патчем QueryRewrite у меня была бы необходимая ловушка для самостоятельной обработки (+), но этот интерфейс так и не попал в официальный выпуск HSQL.
Есть ли другой способ решения этой проблемы для HSQL?
Мы могли бы добавить перезапись запроса где-нибудь в самих наших модульных тестах (а не на уровне тестовой базы данных), но было бы лучше, если бы мы могли этого избежать.
Если для HSQL нет обходного пути, существует ли какая-либо другая база данных / база данных в памяти, запускаемая из jar-файла, которая поддерживает эту (+) нотацию внешнего соединения?