groovy, grails: вопросы высокого уровня по посторонним свойствам и объектам команд - PullRequest
0 голосов
/ 04 октября 2011

Всего несколько вопросов высокого уровня, надеюсь, очень быстрых:

1) Если у меня есть класс A с одним полем x, создаю его

def A = new A(x:someVal, y:someVal) 

совершенно нормально?

2) Связан ли следующий хороший способ скопировать соответствующие части объекта команды в объект домена?

 def domainObject = new DomainObject(commandObject.properties).  

Где объект команды имеет дополнительные свойства. Или это должно быть сделано вместо:

def domainObject = new DomainObject()
domainObject.properties['prop1', 'prop2', ...] = commandObject.properties

или?

Спасибо

1 Ответ

1 голос
/ 05 октября 2011

По первому вопросу важно различать ванильный шпунтованный объект и доменный объект grails. Groovy объекты с броском MissingPropertyException. Доменные объекты Grails будут игнорировать дополнительные свойства.

Что касается второго вопроса, инициализация объектов домена grails с помощью командного объекта является общей схемой, и в целом все в порядке. Параметры могут быть немного более опасными. Злонамеренный пользователь может поместить в параметры что угодно, поэтому лучше четко указать, какие свойства вы хотите назначить. В противном случае могут быть затронуты такие вещи, как отметки времени и пользователи или даже не отображенные столбцы, такие как вставленные пружинные бобы.

...