2017-06-06 5 views
0

Ich schreibe eine Web-Anwendung der Verwaltung der Verbrauchsmaterialien für Computer in JEE zu entwickeln. In meiner Datenbank ist die persönliche Tabelle mit der Login-Tabelle verknüpft; Ich mache eine Insertion eines Personal mit seinem Login und dann nur nach dem Einsetzen ich den folgenden Code ausführen:EJB Beziehung

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

ich diesen Fehler:

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) 

Kann mir jemand helfen?

+0

Die Anmeldeliste ist leer, müssen Sie Ihren Code und invistigate über die Ursache debuggen – Simo

Antwort

0

Ihre LoginList ist leer. Der Fehler wird ausgelöst, wenn Sie versuchen, get(0) von der LoginList zu versuchen. Wenn Sie nicht möchten, einen Datensatz ohne Werte im loginlist einfügen können, können Sie Bean Validation wie folgt verwenden:

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

Vielen Dank für Ihre Antwort. Was ist seltsam, wenn ich den Server Glassfish neu definiere und den Code 'Personal personnel = personalFacade.find (id); Liste pages = pageFacade.findByNiveau (personal.getLoginList(). Get (0) .getNiveauAcces()); 'auf dem gleichen Personal, dass ich kam, um seinen Spaziergang ohne Problem aufzuzeichnen –

+0

Was meinst du mit der Neudefinition des Servers? Wann passiert es? Nur nach einem Einsatz? –