0

Hibernate Search 4 を使用して初心者レベルのプログラムを作成しました。プログラムを実行するたびに、必要なトランザクション (データベースへのレコードの保存など) が実行されますが、プログラムは終了しません。バックグラウンドでスレッドが実行されているようですが、どのスレッドが実行されているのか、またその理由がわかりません。

public static void main(String[] args) {

    Session sess= HibernateUtil.getSf().getCurrentSession();
    FullTextSession fts = org.hibernate.search.Search.getFullTextSession(sess);

    Item it= new Item();
    it.setTitle("Batman");
    it.setDescription("bat man super hero ");
    Item it2= new Item();
    it2.setTitle("Mario");
    it2.setDescription("super mario was game ");

    Transaction t= fts.beginTransaction();
    fts.save(it);
    fts.save(it2);
    t.commit();
4

1 に答える 1

1

HibernateSessionFactoryを閉じる必要があります。

HibernateUtil.getSf().close();

Hibernate Searchを使用していない場合、ORMはバックグラウンドスレッドを実行しないため、この要件に気付かなかった可能性がありますが、これは常にすべてが正常にクリーンアップされるようにするための要件です。

于 2012-10-03T22:51:14.453 に答える