Grails автоматически определяет свойства и предполагает их постоянство. Открытые поля в Groovy создают геттер и сеттер под капотом, поэтому предполагается, что геттеры связаны с постоянными полями.
Но если вам нужен вспомогательный метод, который начинается с 'get' или 'is', но не является получателем для постоянного поля, у вас есть два варианта. Одним из них является использование списка transients
- см. http://grails.org/doc/latest/ref/Domain%20Classes/transients.html
Другой вариант - объявить возвращаемое значение как def
. Поскольку он не типизирован (def является псевдонимом для объекта), Hibernate не может его сохранить, поскольку не знает, какой тип данных использовать, поэтому он игнорируется.
Я предпочитаю список transients
, потому что я предпочел бы использовать самодокументируемые методы, где очевидно, что они делают, какие типы параметров они принимают и что возвращают.