Понятно, вам нужна виртуальная таблица от которой вы можете заджойнить всё остальное... Ну судя по документации напрямую подобной штуки нет. Можно попробовать выкрутиться при помощи таблицы типа dual в Oracle - фактически это просто таблица с одной единственной записью и одной колонкой (в исходниках exposed она даже фигурирует как объект Table.Dual). Если ваша база данных не Oracle то вы можете сами создать такую таблицу ну а дальше возможно сработает что-то типа такого: MyDummyTable.slice(stringLiteral("123")) .join(demo, JoinType.OUTER, additionalConstraint = {demo.ID eq MyDummyTable.???}) .join(demo2, JoinType.OUTER, additionalConstraint = {demo2.ID eq MyDummyTable.???}) .join(demo3, JoinType.OUTER, additionalConstraint = {demo3.ID eq MyDummyTable.???}) ... Я не очень понял как можно задать имя для колонки которая фигурирует как литерал в expose, может быть и никак и тогда придётся в каждом джойне вместо eq MyDummyTable.??? написать eq "123"
спасибо за наводку на stringLiteral
Ну я это не проверял :) просто заглянул в исходники, не факт что его можно передать в slice
Сколько я наблюдаю за попытками построить DSL для SQL (который по сути тоже dsl) столько я вижу только боль и страдание :)
все лучше чем хибер
Обсуждают сегодня