2009-11-09 3 views
1

Я хочу использовать поле lastUpdated домена Grails, чтобы реализовать« какие объекты недавно изменили ». Однако у моего домена есть ассоциация has-many, которая, когда что-то добавляется, приведет к обновлению значения lastUpdated.Обработка `lastUpdated` в домене grails

т.д .:

class Author { 
    string name 
    Date lastUpdated 
    static hasMany = [ books : Book ] 
} 

Добавление новой книги (author.addToBooks (newBook)) обновит lastUpdated.

Вопросы:

  1. Почему lastUpdated не обновляется, когда книга удаляется?
  2. Есть ли способ предотвратить изменение lastUpdated при добавлении книги в список? (Предположим, что новая книга не считается изменением автора в моей модели домена)

Спасибо!

ответ

0

Номер 1 звучит как ошибка (если он обновляется при добавлении книги, он должен быть последовательным и обновлять его при удалении).

Номер 2 - вместо использования addToBooks вы пробовали новую книгу (автор: a) .save()? Возможно, вам придется обновить Автору, если вам нужно будет перечислить свои книги в одном и том же действии, но оно должно прекратить обстрел обновления для автора.

0

Чтобы получить более мелкий контроль над изменениями даты, вы можете добавить событие «beforeUpdate» к вашему классу домена (см. grails.org/GORM+-+Events). Похоже, это предполагаемое поведение: http://jira.codehaus.org/browse/GRAILS-1857