2012-09-21 33 views
0

我已經使用Hibernate Search 4編寫了一個初學者級程序。每當我運行該程序時,都會執行所需的事務(例如將記錄保存在數據庫中),但程序不會終止。看來一個線程正在後臺運行,但我無法確定哪個線程正在運行或者爲什麼。Hibernate搜索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(); 
+0

使用調試器,選擇任何可用於所有常見平臺的免費應用程序。 Eclipse IDE,Netbeans IDE,Intellij。在調試器中,您應該能夠看到活動的線程列表並在'static void main(String [])'方法中設置斷點,以查看返回時會發生什麼。 –

回答

1

Hibernate SessionFactory需要關閉。

HibernateUtil.getSf().close(); 

當不使用Hibernate Search的你可能因爲ORM不運行任何後臺線程沒有注意到這個要求,但是這一直是一個要求,以確保一切有序清理。