2013-01-19 52 views
0

正如我們所知,StatelessSession直接處理與Session不同的數據庫行。
和我的問題是,我們可以使用StatelessSession進行少量的插入,提高 性能的更新嗎?StatelessSession比Session更快嗎?

回答

4

它強烈地依賴於你如何使用它。一般而言,緩存是爲了提高性能而發明的,但「正常」休眠會話的問題在於,它不允許切換緩存。我使用Spring JDBC寫了很多次數據庫訪問,以防止會話開銷,性能大大提高。

這麼好的書面應用程序應該使用StatelessSession大大提高性能。糟糕的書面申請可能會放緩,因爲在Hibernate的力量緩存被認爲是補救措施,以用戶未進行控制時,有多少次他們的代碼將讀取數據庫的東西...

2

StatelessSession不是簡單地緩存會話開啓關閉;這是一個完全不同的會話,許多操作甚至不被支持。因此,如果你有一段代碼沒有違反約束條件,那麼使用無狀態會話並不會有什麼壞處,它可能有助於使它更快。

我使用無狀態會話很多,因爲我避免使用Hibernate進行持久狀態管理,而是保持簡單和直接的HQL查詢。然而,在保存新記錄時,常規會話是不可避免的:Hibernate不支持insert語句和文字數據。