У меня есть объект домена, на котором я хочу хранить несколько вещей, которые существуют только во время выполнения. Я посмотрел на documentation и нашел ключевое слово transients
, которое, на первый взгляд, было тем, что я искал. Вот что мой объект домена выглядит ...Является ли это допустимым использованием переходных процессов Grails?
class Contact {
def Seeker
def beforeInsert()
{
initiatedDate = new Date()
}
Date initiatedDate
Date acceptedDate
static transients = ['pal']
Seeker pal
}
где Seeker
является заводной класс, который не является объектом домена, но заполнитель для некоторых свойств.
До сих пор все в порядке, и моя таблица контактов не имеет поля pal
, как и ожидалось. В моем ContactController
я запрашиваю связку контактов, c
, а затем просматриваю их Seeker
pals (подробности о том, как они удержаны) и задайте поле pal
новому объекту.
c.pal = new Seeker();
c.pal.name = otherObject.name
render c as JSON
Это все работает отлично, за исключением того, что у JSON нет возвращенного объекта.
Является ли это допустимым использованием переходных процессов? В документах упоминается, что они удобны для функций getter и seters, основанных на функциях, но в моем случае я хочу фактический объект. Должен ли я писать метод getPal() и setPal() для моего объекта?
Благодаря
вкусно, спасибо! Я постараюсь в – Simon
как вопрос интереса, как бы поставить это в bootstrap.groovy? Должен ли я включать JSON-сортировку из grails.converters? – Simon
Поместите его внутри закрытия инициализации и импортируйте grails.converters.JSON (я обновил пример в сообщении, чтобы показать это) –