grails - Grails domainClasses获得临时属性

标签 grails metaprogramming grails-domain-class transient

GrailsDomainClass类具有两种方法:getPropertiesgetPersistentProperties
我有一个域类(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>

好。那行得通,但它没有任何 transient 属性。我尝试了d.properties和d.persistantProperties,它们似乎给了我相同的结果。在此先感谢您的帮助!!

我需要称它为getComputeStuff或其他名称吗?

我现在已经更改了我的域类以包含此域,但仍然无法获得 transient computeStuff
static transients = ['computeStuff']
float getComputeStuff(){
  def thisCouldChange = 3.1
  return thisCouldChange  //it actually does things but not of consequence to my question
}

这似乎没有什么区别。

最佳答案

去除静态 transient 脱纤。定义您的方法如下:

def getComputeStuff(){
  def thisCouldChange = 3.1
  return 3.1  //it actually does things but not of consequence to my question
}

之后,在域类上调用getProperties()的属性列表中应出现一个属性调用“computeStuff”。将返回值定义为 def 非常重要。

关于grails - Grails domainClasses获得临时属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6379775/

相关文章:

python - 将以下 PhotoImage 代码行减少到尽可能少的行数

java - 找不到 : java. time.LocalDateTime(java.lang.String) 的匹配构造函数

http - Grails 未找到线程绑定(bind)请求

javascript - 让 Javascript 与 Grails 对话以获得 KML

ruby-on-rails - 当你在不是类的东西上运行 class_eval 时会发生什么?

c++ - 生成算术运算结果类型的策略?

grails - 嵌入式Grails SQL View

grails - 更改 Grails 域类的显示名称

unit-testing - Grails mockFor 以及如何最好地测试使用正确参数调用的方法

unit-testing - Grails Neo4j-为什么将POM包含为依赖项?