【发布时间】:2011-09-16 19:27:40
【问题描述】:
GrailsDomainClass 类有两个方法:getProperties 和 getPersistentProperties
我有一个域类 (MyDomainClass),其中包括:
static transients = {computeStuff}
float computeStuff(){
def thisCouldChange = 3.1
return thisCouldChange //it actually does things but not of consequence to my question
}
好的,我把默认索引页面修改为列出MyDomainClass的所有属性,如下所示:
<g:each var="d" in="${grailsApplication.domainClasses.sort { it.fullName } }">
<h2>${d.fullName}</h2>
<g:each var="f" in="${d.properties.sort { it.fieldName } }">
<br>${f.fieldName }
</g:each>
</g:each>
好的。这行得通,但它没有得到任何瞬态属性。我已经尝试过 d.properties 和 d.persistantProperties ,它们似乎给了我相同的结果。提前感谢您的帮助!
我需要将其称为 getComputeStuff 吗?
我现在已经更改了我的域类以包含它,但仍然没有取回瞬态 computeStuff
static transients = ['computeStuff']
float getComputeStuff(){
def thisCouldChange = 3.1
return thisCouldChange //it actually does things but not of consequence to my question
}
这似乎没什么区别。
【问题讨论】:
-
您是否尝试过将 computeStuff 定义为闭包而不是方法
float computeStuff = { ... }?我不确定这是否会影响它。 -
所以
float computeStuff惹恼了 SessionFactory,但def computeStuff让我回到了开始的地方。
标签: grails metaprogramming grails-domain-class transient