0

正如我们所知StatelessSession,与 Session 不同,它直接处理数据库行。
我的问题是,我们可以使用StatelessSession少量插入、更新来提高性能吗?

4

2 回答 2

4

这在很大程度上取决于您如何使用它。缓存通常是为了提高性能而发明的,但是“正常”休眠会话的问题在于它没有让您选择关闭缓存。我已经多次使用 Spring JDBC 编写数据库访问以防止会话开销,并且性能大大提高。

因此,好的书面应用程序应该使用 StatelessSession 大大提高性能。糟糕的编写应用程序可能会变慢,因为 Hibernate 中的强制缓存被认为是对用户无法控制他们的代码何时以及多少次从 DB 中读取内容的补救措施......

于 2013-01-19T15:09:37.287 回答
2

StatelessSession不仅仅是关闭缓存的会话;这是一种完全不同的会话,甚至不支持许多操作。因此,如果您有一段代码不会破坏其约束,那么使用无状态会话不会有任何坏处,并且可能有助于使其更快。

我经常使用无状态会话,因为我避免使用 Hibernate 进行持久状态管理,而是使用简单直接的 HQL 查询。然而,当保存新记录时,常规会话是不可避免的:Hibernate 不支持insert带有文字数据的语句。

于 2013-01-19T15:39:46.617 回答