出现java.lang.IllegalArgumentException: id to load is required for loading的解决方法

  使用了hibernate进行关系映射的时候,比如有一对多的关系,一个测试项目对应多个测试用例模块,部分的关系映射表:

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
< many-to-one name ="testProject" class ="com.eyely.pojos.TestProject" >
< column name ="f_test_project_id" sql-type ="nvarchar2(32)" />
</ many-to-one >


< set name ="testCaseModules" lazy ="true" inverse ="false" >
< key >
< column name ="f_test_project_id" sql-type ="nvarchar2(32)" />
</ key >
< one-to-many class ="com.eyely.pojos.TestCaseModule" />
</ set >

 

相关Java文件:

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
// 相关属性
private String name;
private String description;
private TestCaseModule parent;
private TestProject testProject;
/ ** 不属于同一Java文件,为了方便,写在一起了 */
testCaseModule.setDescription(cmd.getParameter(
" description " ));
testCaseModule.setName(cmd.getParameter(
" name " ));
testCaseModule.setParent((TestCaseModule)session.get(TestCaseModule.
class , cmd.getParameter( " parent " )));
testCaseModule.setTestProject((TestProject)session.get(TestProject.
class , cmd.getParameter( " testProject " )));

添加操作:*.jsp

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
// 只贴部分代码,代码部分已经封装好,这里只供参考
TestCaseModuleProcessor processor = server.getProcessor(TestCaseModuleProcessor. class );

Command cmd
= new HttpServletCommand(request, response);
// TODO: miss validate.
processor.create(cmd);

如果访问*.jsp文件时,因为进行添加时,首先会先查找关联关系中的测试项目的Id ,获取到之后再进行添加的操作,如果获取不到测试项目的id,那么将会跑出一个异常,如大概是这样的信息:

java.lang.IllegalArgumentException: id to load is required for loading
org.hibernate.event.LoadEvent.<init>(LoadEvent.java:51)
org.hibernate.event.LoadEvent.<init>(LoadEvent.java:33)
org.hibernate.impl.SessionImpl.get(SessionImpl.java:812)
org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
com.zyeeda.projs.cmsz.processors.TestCaseModuleProcessor.create(TestCaseModuleProcessor.java:56)
org.apache.jsp.test_005fcase_005fmodule.create_jsp._jspService(create_jsp.java:81)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)

那么如果要测试你的jsp文件是否正确的话,可以传递一个参数来测试。如在URL传递一个参数来测试:你的JSP页面的路径?testProject=1,这样就不会再
出现
id to load is required for loading
这样的异常了,如果你的jsp或者其他代码出现错误的话,浏览器将会提示其他的错误信息,这时你就可以调试你的代码了

 

 

转载于:https://www.cnblogs.com/azai/archive/2010/07/14/1777438.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值