2016-05-12 19 views
0

私は休止状態でいくつかの更新トランザクションを実行しています。しかし、すべてのジョブを終了した後、VMはexit()メソッドを明示的に呼び出す以外は終了しません。私のコードはここにある:コードが終了してもVMは終了しません

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++); 
    } 

とスレッドダンプは、このようなものです: enter image description here

答えて

0

あなたのコードは本当に何も言いません。このようなHibernateの動作の理由は、セッションファクトリを閉じないことが原因です。

+0

しかし、_BaseDao_の私のすべてのメソッドは、finallyブロックで開くセッションを閉じます。 – zhongwei

+0

@ zhongweiセッションではなく、セッションファクトリです! –

+0

はい、私はセッションを閉じる工場を忘れました。 _BaseDao_のオブジェクトを初期化した後、セッションファクトリを閉じる必要があると言っていますか? – zhongwei

関連する問題