Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法初始化代理-没有会话_Java_Hibernate_Grails_Groovy - Fatal编程技术网

Java 无法初始化代理-没有会话

Java 无法初始化代理-没有会话,java,hibernate,grails,groovy,Java,Hibernate,Grails,Groovy,嗨 我使用的是Grails1.2.1,当我运行我的应用程序时,我总是收到这条消息,并且没有任何人使用这些应用程序 org.hibernate.LazyInitializationException:无法初始化代理-无会话 在我看来,我已经加载了一个类菜单: /** 菜单域 规则:一个控制器对应一个菜单 * */ 班级菜单{ 字符串menuName=“”; 字符串menuController=“”; 字符串menuAction=“”; 整数菜单顺序=1; 字符串菜单类=“”;//html类 整数

我使用的是Grails1.2.1,当我运行我的应用程序时,我总是收到这条消息,并且没有任何人使用这些应用程序

org.hibernate.LazyInitializationException:无法初始化代理-无会话

在我看来,我已经加载了一个类菜单:

/**
菜单域 规则:一个控制器对应一个菜单 * */ 班级菜单{ 字符串menuName=“”; 字符串menuController=“”; 字符串menuAction=“”; 整数菜单顺序=1; 字符串菜单类=“”;//html类 整数myid=0

boolean isUser = false; // is this user menu (user only menu) 
boolean isAdmin = false; // is this administrator menu 
boolean isHorizontal =false; // is this horizontal or vertical (if false)
String menuType='all'; // pia, dam, da, br, all  
Menu parentMenu;

static hasMany = [childMenu:Menu] ;
static belongsTo = [parentMenu:Menu];

static constraints = {
    menuName(blank:false, nullable:false);
    menuOrder(blank:false, nullable:false);
    menuController(blank:true,nullable:false); // blank/nullable if there is no controller
    menuAction(blank:true,nullable:false); // blank/nullable if there is no controller
    menuClass(blank:true,nullable:false); // css class ... blank : using default menu
    parentMenu(blank:true, nullable:true);
    childMenu(blank:true, nullable:true);
}

String toString(){
    "${menuName}";
}
}

在布局/main.gsp中 我有以下代码:

                <%
            def currMenu = Menu.findByMenuController(params.controller);
            %>
            <g:if test="${currMenu}">
            <g:if test="${currMenu.isHorizontal}">
            <g:each in="${Menu.findAllByParentMenu(currMenu,[sort:'menuOrder',order:'asc'])}" status='x' var='submenu'>
            <li class='${submenu.menuClass} <% 
            if(submenu.menuController == params.controller){
                // dont hi-light on sign out 
                if(params.controller.equals("auth")){
                }else{
                    out << "selected";
                }
            }
            %>'> 
                    <g:if test="${!submenu.menuController.equals('')}">
                        <g:link controller='${submenu?.menuController}' action='${submenu?.menuAction}'>
                            ${submenu?.menuName} 
                        </g:link>
                    </g:if>
                    <g:else>
                            ${submenu?.menuName} 
                    </g:else>
                </li>
            </g:each>
            </g:if>
            <g:else>
            <%
            // get who is the parent 
            def parentMenu = currMenu.parentMenu ;
            %> 
            <g:each in="${Menu.findAllByParentMenu(parentMenu,[sort:'menuOrder',order:'asc'])}" status='x' var='submenu'>
            <li class='${submenu.menuClass} <% 
            if(submenu.menuController == params.controller){
                // dont hi-light on sign out 
                if(params.controller.equals("auth")){
                }else{
                    out << "selected";
                }
            }
            %>'> 
                <g:if test="${!submenu.menuController.equals('')}">
                    <g:link controller='${submenu?.menuController}' action='${submenu?.menuAction}'>
                        ${submenu?.menuName} 
                    </g:link>
                </g:if>
                <g:else>
                        ${submenu?.menuName} 
                </g:else>
            </li>
            </g:each>
            </g:else>
            </g:if>
        </ul>
        </g:if>

 
${子菜单?.menuName}
${子菜单?.menuName}

 
${子菜单?.menuName}
${子菜单?.menuName}



如何修复此错误?我可以重新启动grails,它可以正常工作。。但我只是好奇如何修复这个问题。当应用程序每隔几个小时不活动就会中断时,您的错误似乎与陈旧的连接有关

有关此问题的说明和解决方案,请参阅


Fabien.

您是否尝试搜索stackoverflow?或者你看到他们的建议了吗,
                <%
            def currMenu = Menu.findByMenuController(params.controller);
            %>
            <g:if test="${currMenu}">
            <g:if test="${currMenu.isHorizontal}">
            <g:each in="${Menu.findAllByParentMenu(currMenu,[sort:'menuOrder',order:'asc'])}" status='x' var='submenu'>
            <li class='${submenu.menuClass} <% 
            if(submenu.menuController == params.controller){
                // dont hi-light on sign out 
                if(params.controller.equals("auth")){
                }else{
                    out << "selected";
                }
            }
            %>'> 
                    <g:if test="${!submenu.menuController.equals('')}">
                        <g:link controller='${submenu?.menuController}' action='${submenu?.menuAction}'>
                            ${submenu?.menuName} 
                        </g:link>
                    </g:if>
                    <g:else>
                            ${submenu?.menuName} 
                    </g:else>
                </li>
            </g:each>
            </g:if>
            <g:else>
            <%
            // get who is the parent 
            def parentMenu = currMenu.parentMenu ;
            %> 
            <g:each in="${Menu.findAllByParentMenu(parentMenu,[sort:'menuOrder',order:'asc'])}" status='x' var='submenu'>
            <li class='${submenu.menuClass} <% 
            if(submenu.menuController == params.controller){
                // dont hi-light on sign out 
                if(params.controller.equals("auth")){
                }else{
                    out << "selected";
                }
            }
            %>'> 
                <g:if test="${!submenu.menuController.equals('')}">
                    <g:link controller='${submenu?.menuController}' action='${submenu?.menuAction}'>
                        ${submenu?.menuName} 
                    </g:link>
                </g:if>
                <g:else>
                        ${submenu?.menuName} 
                </g:else>
            </li>
            </g:each>
            </g:else>
            </g:if>
        </ul>
        </g:if>