Grails: Как определить свойство домена, отображаемое в представлениях, но не сохраненное?
У меня есть классы этого домена, скажем:
class Person {
String name
Integer age
//car data that needs to be shown and filled in views
//but not persisted in Person class
String model
String color
static afterInsert = {
def car = new Car(model: model, color: color)
car.save()
}
}
class Car {
String model
String color
}
Что мне нужно, это показать в моем Person
Просмотры (create
а также edit
) свойства модели и цвета, которые определены внутри Person
класс, но это не должно быть сохранено с этим классом. Эти данные, model
а также color
должны быть сохранены с помощью Car
класс домена, возможно, с использованием afterInsert
событие. Другими словами, мне нужно сохранить данные из класса домена, используя представления из другого класса домена.
Заранее спасибо.
1 ответ
Вы можете использовать переходные процессы в свойствах, которые GORM игнорирует, например
class Person {
static transients = ['model', 'color']
String name
Integer age
//car data that needs to be shown and filled in views
//but not persisted in Person class
String model
String color
..
}
Просто любопытно, но есть ли причина, по которой вы не используете ассоциации
class Person {
..
static hasMany = [cars: Car]
}
class Car {
..
static belongsTo = [Person]
static hasMany = [drivers: Person]
}
.. или композиция
class Person {
Car car
}
или просто привязка данных с несколькими доменами
//params passed to controller
/personCarController/save?person.name=John&age=30&car.model=honda&car.color=red
//in your controller
def person = new Person(params.person)
def car = new Car(params.car)