Questo è stato il mio caso
Ho avuto un BO classe di Student che stava avendo molti-a-uno mappatura all'altra BO classe Classi (la classe che ha studiato).
Volevo salvare i dati in un'altra tabella, che aveva chiavi esterne di entrambi Student e Classi. Ad un certo esempio di esecuzione, che stavo portando una lista di studenti in alcune condizioni, e ogni studente avrò un riferimento di Classi classe.
codice di esempio: -
Iterator<Student> itr = studentId.iterator();
while (itr.hasNext())
{
Student student = (Student) itr.next();
MarksCardSiNoGen bo = new MarksCardSiNoGen();
bo.setStudentId(student);
Classes classBo = student.getClasses();
bo.setClassId(classBo);
}
Qui si può vedere che, sto impostando entrambi Student e classi riferimento al BO voglio salvare. Ma durante il debugging quando ho ispezionato student.getClasses()
stava visualizzando questa eccezione (com.sun.jdi.InvocationException
).
Il problema che ho trovato era che, dopo il recupero della lista studenti, utilizzando HQL interrogazione, ero vampate di calore echiusura il sessione di.Quando ho rimosso la dichiarazione session.close();
, il problema è stato risolto.
La sessione è stata chiusa quando ho infine salvato tutti i dati nella tabella (MarksCardSiNoGen).
Spero che questo aiuti.
fonte
2016-12-01 15:06:19
È difficile indovinare qual è il problema senza codice sorgente o traccia dello stack. –
L'ho capito, il metodo toString() della classe può lanciare NullPointerException se invocato, quando lo correggo, l'errore è scomparso, ma non ho visto come è successo? – xyy
Bel lavoro xyz. Puoi per favore pubblicare una risposta alla domanda tu stesso e quindi accettare quella risposta in modo che possiamo chiudere questa domanda? Inoltre, è necessario accettare le risposte alle domande precedenti se risolvono il problema. – Zecas