繁体   English   中英

如何从Grails控制器和视图外部引用Grails域类字段?

[英]How to reference a Grails domain class fields from outside of the Grails controller and view?

我有域类:

class Child {
    static hasMany = [ toys : Toy ]
    String name
    Set  toys
}
class Toy {
    static belongsTo = [ owner : Child ]
    String name
}

在我的JSP中,我通过以下方式引用孩子:

child = Child.findByName("Joe")

要么

child = Child.findById(123)

但是,当我尝试访问其字段时:

child.getToys()

我收到错误:

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: Child.toys, no session or session was closed

我是否需要手动启动休眠会话? 如果是这样,我该怎么做?

跟进2012年2月 :从Grails控制台(Grails 2.0.0)运行时,也会出现此行为

这与Grails 1.0.4中有关休眠延迟初始化的缺陷有关。 作为解决方法,您可以强制渴望获取这些属性:

child = Child.findByName("Joe", [ fetch: [ toys: 'eager' ] ] )

除此之外,遵循MVC原则,您应该考虑在控制器内部执行这些查询,并将结果纳入模型。

顺便说一句。 您真的在JSP内执行此操作吗? 还是GSP?

干杯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM