我有一个域类,我想在运行时进行数据库调用,以将对象列表填充为属性。我有一个带有'headMember'属性的树,该属性是一个具有以下功能的对象:
def marriages = {
def marriages = Marriage.findAll("from Marriage as m where m.mainMember.name=:name", [name:name])
return [marriages:marriages]
}
在我的GSP中,我使用${tree?.headMember?.marriages}
来访问模型的'headMember'属性,该属性从相关控制器中的以下函数传递到视图'tree':
def show = {
def tree = Tree.get(params.id)
render(view:'show', model:[tree:tree])
}
当我在浏览器中查看此内容时,我得到:
Member$_closure1@3708ab98
我希望有一个清单。
任何想法我做错了什么?
干杯。
答案 0 :(得分:2)
当您调用婚姻时,您正在调用一个闭包并返回此闭包。我认为你应该把它改成一种方法,就像这样:
static transients = ['marriages'] // tell hibernate that marriages is not a persistent property
List<Marriages> getMarriages(){
return Marriage.findAll("from Marriage as m where m.mainMember.name=:name", [name:name])
}
这样,当您在GSP中致电${tree?.headMember?.marriages}
时,系统会调用getMarriages()
方法并返回婚姻清单。