2015-08-12 2 views
0

Учитывая следующие классы:bindData включают с вложенными Params

Упрощенный пример:

class Query { 
    Institution institution 
} 

class Institution { 
    String name 
} 

С помощью следующих параметров представляется: query.institution.id=20 и query.institution.name=Example

Я хотел бы включить только Идентификатор организации и игнорирует имя, связанное с экземпляром учреждения запроса.

Возможно ли, что bindData явно включает связанные экземпляры, которые вложены в несколько уровней, например?

Я не видел никаких примеров этого, помимо использования префикса для одного уровня вложенности, и следующее, кажется, не работает:

Упрощенный пример:

bindData(queryInstance, params, [include: [ 
    'institution.id', 
]], 'query') 

ответ

0

Лучшая практика - отфильтровать параметры запроса через объект команды, который затем можно использовать для генерации любого запроса.

Command cmd = Command.getInstance() 
bindData(cmd, request.params) 
if (cmd.validate()) Query query = cmd.generateQuery() 

Таким образом, вы получаете выгоду от привязки только к полям выставляют на объекте команды, при проверке и преобразования входных данных без участия вашего домена.

Смежные вопросы