2016-05-12 8 views
0

Ich führe einige Update-Transaktionen mit Hibernate durch. Nach Abschluss des gesamten Jobs wird die VM jedoch nicht beendet, außer dass explizit die exit() -Methode aufgerufen wird. Mein Code ist hier:VM wird nicht beendet, wenn der Code fertig ist

BaseDao baseDao = new BaseDao(); 
    List<Papers> list = baseDao.find("from Papers"); 
    int i = 0; 
    for (Papers p : list) { 
     p.setAbstext(p.getAbstext().replaceAll("<br>", "").replaceAll("</br>", "")); 
     baseDao.update(p); 
     System.out.println(i++); 
    } 

und die Thread-Dump ist wie folgt: enter image description here

Antwort

0

Ihr Code sagt wirklich nichts. Der Grund für ein solches Verhalten mit Hibernate kann sein, dass Sie eine Sitzungsfactory nicht schließen.

+0

Aber alle meine Methoden in _BaseDao_ schließen die Sitzung, die es im finally-Block öffnet. – zhongwei

+0

@zhongwei Keine Sitzung, sondern eine Sitzung Fabrik! –

+0

Ja, ich habe vergessen, die Sitzung zu schließen. Sagt es, dass ich die Sitzungsfabrik schließen muss, nachdem ich ein Objekt von _BaseDao_ initialisiert habe? – zhongwei

Verwandte Themen