【发布时间】:2012-01-22 02:41:49
【问题描述】:
如何在非持久性域类中设置变量。我希望能够写入和读取该变量,但我不希望它成为表的一部分。
在 Rails 中执行此操作的方法是使用 attr_accessor 设置一个变量。这在 Grails 中可行吗?有人知道怎么做吗?
谢谢!
【问题讨论】:
标签: grails grails-domain-class
如何在非持久性域类中设置变量。我希望能够写入和读取该变量,但我不希望它成为表的一部分。
在 Rails 中执行此操作的方法是使用 attr_accessor 设置一个变量。这在 Grails 中可行吗?有人知道怎么做吗?
谢谢!
【问题讨论】:
标签: grails grails-domain-class
只需将所有瞬态变量的名称添加到transients 列表中,例如
class MyDomain {
static transients = ['nonPersistent', 'nonPersistent2']
Integer nonPersistent
Integer nonPersistent2
Integer persistent
Integer persistent2
}
【讨论】:
定义不应保存到数据库的属性名称列表。如果您有只读访问器方法(“getter”),这些方法是辅助方法,但由于与持久性相关而感到困惑,这通常很有用。
示例
class Author {
String name
String getUpperCaseName() { name.toUpperCase() }
static transients = ['upperCaseName']
}
【讨论】:
这里我在域类中创建了瞬态变量-
class Application {
dataType domainFields //define datatypes
static transients = [ 'name']
String getName() {
return 'grails App'
}
}
【讨论】: