Есть ли способ построить SQL по этапам/этапам с помощью jOOQ? Что-то вроде:Поэтапное/поэтапное/условное построение SQL в jOOQ
DSLContext create = DSL.using(conn, SQLDialect.MYSQL);
DSL dsl = create.from(table("links"));
if(!StringUtils.isEmpty(place)) { // place is specified, change the query
long placeId = getPlaceId();
if (placeId > 0) {
dsl = create.from(table("place_links"))
.join(table("links"))
.on(field("links.id").equal(field("place_links.link_id")))
.where(field("place_links.place_id").equal(placeId));
}
}
String sql = dsl.select(field("*"))
.orderBy("links.score")
.limit(1)
.getSQL();
Вышеуказанное не будет компилироваться, но я ищу что-то на аналогичных принципах. Мне нужно начать с from
, так как целевая таблица изменяется во время выполнения.
Требование в том, что окончательные изменения запроса во время выполнения в зависимости от значений, которые подаются в.
Очень умный. Я только что отредактировал, чтобы исправить строку после 'if (placeId> 0) {'. Полагаю, вы имели ввиду 'from', но писали' table'. Все остальное выглядит великолепно. –
@ MugomaJ.Okomba: Да. Спасибо за редактирование –