Необходимо построить строку запроса ESQ, для присоединения колонки:
Таблицы:
Contact
SysAdminUnit
SysAdminUnitInRole
Корневая (текущая схема): Contact
Необходимо присоединить схему "SysAdminUnit" по полю "Contact"
Вопросов нет:
esq.addColumn("[SysAdminUnit:Contact].Id", "AdminUnitId")
В результате в поле ответа "AdminUnitId" будет содержаться соответствующее значение
Id из
"SysAdminUnit"
Так...
А теперь мы хотим немного усложнить, и использовать полученный Id для присоединения еще одной таблицы SysAdminUnitInRole по полу "SysAdminUnit"
пробуем:
esq.addColumn("[SysAdminUnit:Contact].[SysAdminUnitInRole:SysAdminUnit].Id", "AdminUnitInRoleId")
Но и такая конструкция уже не работает...
Здесь какая-то проблема с колонкой Id так как если для связи все время использовать разные поля - то такая конструкция работает нормально, например если бы мы привязывали "AdminUnitId" у которого нужный нам для дальнейшей связи Id содержался бы в некоем кастомном поле, н/п "TargetId"
, а в конечной таблице SysAdminUnitInRole нам нужен был бы не Id а скажем какое ни будь другое поле, н/п "CustomFiled"
тогда:
esq.addColumn("[SysAdminUnit:Contact"].[SysAdminUnitInRole:SysAdminUnit:TargetId].CustomFiled", "AdminUnitInRoleId")
то такой запрос бы сработал...
Как решать на этапе присоединения колонок эти проблемы с тем что нужно использовать постоянно колонку Id которая в каждой присоединяемой схеме своя ?