Проблема с написанием собственного sql заключается в том, что вам нужно вручную оптимизировать его для вашей СУБД. Некоторые РСУБД поддерживают различные конструкции SQL.
Таким образом, вам необходимо сбалансировать это с накладными расходами на переключение на решение на основе ORM. Или убедитесь, что sql соответствует 100% -ому стандарту, поэтому вы не используете конструкции, которые работают в одном решении СУБД, а не в другом.
В вашей конкретной ситуации, вероятно, будет проще просто исправить свой sql, чем переделать весь слой постоянства, чтобы использовать ORM. Иногда лучший инструмент - тот, который ты знаешь. Если ваше текущее приложение не имеет краткого уровня модели, переключение на ORM потребует много работы. Конечно, вы можете использовать hibernate и просто использовать прямые SQL-запросы, но какой смысл, если вы не собираетесь моделировать свои данные.
Надеемся, что все ваши проблемы с постоянством находятся на одном уровне DAO, с множеством интеграционных тестов, поэтому вы можете быстро определить, что ломается, когда вы переключаете RDBMS. Если у вас нет интеграционных тестов, ориентированных на постоянство, то сейчас самое время их написать.