SysTableLookup - вопрос к пользователям этого класса
Создам опрос, чтобы собрать данные по ходу.
Но проблему опишу здесь:
Вступление:
Класс SysTableLookup умеет работать с дисплей методами. При добавлении в лукап хотя бы одного дисплей метода, для query, формируемой внутри, не формируется fieldList. Это значит, что запрос выбирает из базы данных все поля, даже те, которые не отображаются в лукапе.
Сделано это с тем, чтобы обеспечить правильную работу лукапа в этом случае. Если бы QueryBuildFieldList был сформирован только по, собственно, полям лукапа, то поля, используемые дисплей методом, не выбрались бы, и он отображал бы не то, что должен.
Приемущество: простота использования разработчиками.
Недостаток: Выбирает все поля в случае использования дисплей методов.
Альтернативно, можно формировать queryBuildFieldList только по тем полям, которые мы сами добавили в Query в перекрытом методе lookup. При этом, если хочется использовать дисплей метод, нужно добавить в query все поля, которые используются дисплей методом.
Приемущество:Выбираются только те поля, которые нужно для работы, то есть для таблиц с большим кол-вом полей получим экономию.
Недостаток:Немного усложняет процесс разработки, потому что разработчики должны проследить и добавить все необходимые поля. Также, если в дальнейшем кто-то изменит дисплей метод, нет гарантии, что лукап будет работать правильно.
Хотелось бы послушать, кто какой вариант предпочитает/использует, как пишут собственнов коде, т.д.
Спасибо
|