2017-02-10 33 views
0

Я работаю с доменами, сопоставленными с устаревшей базой данных, которая широко использует группы пользователей уровня db для управления грантами как для таблиц, так и для столбцов. Я необходимости отобразить следующую упрощенную ассоциацию:В Grails, как я могу получить прокси домена вместо полной записи

JailBooking { целочисленный идентификатор, имя String, дело случая }

Case { целочисленный идентификатор, Строка causeNumber, Строка caseType, Строка someFlag , Строка someOtherFlag }

Теперь из-за разрешений таблицы/столбца у нас есть группа пользователей, которая имеет полные права на выбор/вставку/обновление полную таблицу JailBooking, но вы можете выбрать только поля id и causeNumber в Case. При попытке установить запись Case в JailBooking любая попытка сделать чтение в случае приводит к исключению, потому что запрос на загрузку Case вызывает все столбцы в домене. Чтобы сохранить запись JailBooking, нам действительно нужен только столбец ID из Case.

Я знаю, что при ленивых объектах часто возвращается неинициализированный прокси, содержащий только поле id домена. Есть ли способ вручную извлечь это или аналогичный объект, который пытается получить доступ к столбцу id из таблицы Case и подходит для сохранения записи JailBooking?

Если это влияет на ответ вообще, я работаю с Grails 2.5.5.

ответ

0

Вы можете использовать jailBookingEntity.caseId для доступа к id без инициализации прокси. Вы можете использовать суффикс «Id» для каждого связанного объекта, чтобы получить значение Id.

Если вам нужен прокси-сервер, вы можете использовать Case.load (jailBookingEntity.caseId)