2017-06-06 16 views
0

我正在編寫計算機消耗品管理的Web應用程序以在JEE中進行開發。在我的數據庫中,個人錶鏈接到登錄表;我做一個工作人員的插入與他的登錄,然後恰好在插入之後,我執行下面的代碼:EJB關係

Personnel personnel = personnelFacade.find(id); 
    List<Page> pages = pageFacade.findByNiveau(personnel.getLoginList().get(0).getNiveauAcces()); 

我得到這個錯誤:

Avertissement: StandardWrapperValve[SettingPersonnal]: Servlet.service() for servlet SettingPersonnal threw exception 
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0 
    at java.util.Vector.get(Vector.java:748) 
    at org.eclipse.persistence.indirection.IndirectList.get(IndirectList.java:442) 

誰能幫助我?

+0

登錄列表是空的,你需要調試的代碼和invistigate有關原因 – Simo

回答

0

您的登錄清單是空的。當您嘗試從LoginList中登錄get(0)時,將引發此錯誤。如果你不希望能夠插入記錄中,loginlist沒有值,你可以使用Bean驗證這樣的:

@NotNull @Size(min = 1) 
List<MyLoginClass> loginList; 
+0

感謝您的回答,有什麼好奇的是,當我重新定義服務器glassfish並執行代碼'Personnel personnel = personnelFacade.find(id); 列表 pages = pageFacade.findByNiveau(personnel.getLoginList()。get(0).getNiveauAcces());'對於我來記錄它的步行沒有問題的同一個工作人員 –

+0

重新定義服務器的含義是什麼?它何時發生?只有在插入後? –