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