2012-10-16 46 views
0

也許這是我的Hibernate的Session沖洗的誤解,我在衝我的服務裏面我會一直在想,但感覺並不好做這樣的事情在一個服務:法拉盛會議在服務

public Object serviceMethod(Object model){ 

    //Do things with model 
    sessionFactory.getCurrentSession().flush(); 

} 

這感覺不對,因爲我的服務將會了解我的持久性機制。

所以我一直在想製作一個方面,並使用註解,所以我的代碼如下所示:

@FlushAfter 
public Object serviceMethod(Model model){ 
    //Do things with model 
} 

這是正確的做法還是我做的事情錯了呢?

回答

1

沒有必要那麼做,因爲它已經被事務攔截器自動完成了:默認情況下,在事務提交之前會自動刷新Hibernate會話。所以如果你的服務是事務性的(應該是,使用Hibernate),會話將被自動刷新。

0

事務攔截器/經理可能會決定在交易結束時刷新會話()。另請注意,如果需要,它可能會在交易中間自動刷新會話。你沒有明確地調用flushsession。順便說一句,明確調用flush會話的原因是什麼。 這flush session in the middle of transaction - 關於這個主題相關的問題