StatelessSession比Session更快吗?

时间:2013-01-19 15:05:16

标签: java hibernate

我们知道StatelessSession直接处理与Session不同的数据库行 我的问题是,我们可以使用StatelessSession进行少量插入,更新以进行改进 性能

2 个答案:

答案 0 :(得分:4)

这在很大程度上取决于你如何使用它。一般来说,缓存是为了提高性能而发明的,但“正常”休眠会话的问题在于它无法选择切换缓存。我已经编写了很多次使用Spring JDBC进行数据库访问以防止会话开销,并且性能大大提高。

如此好的书面应用程序应该使用StatelessSession大大提高性能。糟糕的书面应用程序可能会放慢速度,因为Hibernate中的强制缓存被认为是对用户无法控制其代码从DB读取内容的时间和次数的补救...

答案 1 :(得分:2)

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

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