Grails:如何定义在视图上呈现但不持久的域属性?

时间:2013-07-23 22:35:12

标签: grails gsp grails-domain-class

我有这个域类,让我们说:

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观看次数(createedit)中显示Person级内定义的模型和颜色属性,但这些属性并非如此;必须坚持这个班级。这些数据modelcolor必须使用Car域类来保留,可能使用afterInsert事件。换句话说,我需要使用来自另一个域类的视图来保存域类中的数据。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以对希望GORM忽略的属性使用transients,例如

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)
相关问题