2010-12-08 75 views

回答

16

无论如何,关于无状态会话没有太多可说的。基本上,它只有一个目的:不要缓存任何东西。

在常规会话中,Hibernate会维护一个“会话级别缓存”,例如当您关闭会话时会被清除。在其他一些情况下,您可以插入缓存机制以充当“二级缓存”,该缓存机制与此“会话级缓存”互补,即使在会话关闭后也可以存活。

但是,如果您处于批处理操作模式,则可能会出现问题。例如,如果您只是读取输入文件并在数据库中插入实体,则将任何实体保留在缓存中(会话级别)是没有意义的。你知道你不会再需要这个实体了。所以,这就是你使用无状态会话的地方。

API没有任何变化,只是实施中的变化。

看看这个链接。这就是无状态会话需要了解的全部内容: http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/batch.html#batch-statelesssession