没有懒惰地初始化Grails中的角色集合

时间:2014-12-30 12:07:29

标签: hibernate grails

我被击中了。有如下的父表。

     class Parent{
        static hasMany = [child: Child];
        static Parent findByParent(Parent parent){
        def c = Parent.createCriteria()
        def result = c.get {
        child{
             idEq(parent.id)
        }
       }
      }
     }

    class Child {

    }

以下是控制器操作。

    def save(Child child){
      def orderList;
      if(parent){
        orderList = parent?.child(); // here i am getting exception. failed to lazily initialize 
                                      //  a collection of role: Parent.child, no session or session  
                                        //was closed. Stacktrace follows:
      }
    }      

那么如何处理这种情况。或者是否有任何注释要进行Eager初始化。

1 个答案:

答案 0 :(得分:4)

对于急切的提取,您可以在父域中明确将lazy设置为false。尝试这样的事情

static mapping = {
    child lazy: false
}

希望它有所帮助...