簡體   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