出現java.lang.IllegalArgumentException: id to load is required for loading的解決方案

來源:互聯網
上載者:User

  使用了hibernate進行關係映射的時候,比如有一對多的關係,一個測試專案對應多個測試案例模組,部分的關係映射表:

 

代碼

<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檔案:

代碼

// 相關屬性
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

代碼

// 只貼部分代碼,代碼部分已經封裝好,這裡只供參考
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或者其他代碼出現錯誤的話,瀏覽器將會提示其他的錯誤資訊,這時你就可以調試你的代碼了

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.