Я хочу генерировать sql-запросы во время выполнения, пользователь перетаскивает схему из UI, например, имя таблицы no of fields, join, conditions. В конце я хочу построить sql-запрос, используя эти входные данные из front-end и отправить запрос sql-сборки на передний план, как это сделать, и какой API мне нужно использовать.
Наиболее распространенным решением для этого является критерийQuery, но вы должны серьезно рассмотреть QueryDSL. Он имеет те же функциональные возможности, что и критерии (включая динамическое построение запросов), но более удобен и читабель.