在hibernate中需要有关无状态会话的足够信息

时间:2010-12-08 05:39:32

标签: java hibernate

您好     我正在进行休眠,需要一些关于无状态会话的信息。试图在谷歌搜索,但没有得到那么多的信息。所以请关于如何,为什么以及何时使用它的任何关于无状态会话的链接或pdf。使用它有什么利弊。 感谢

2 个答案:

答案 0 :(得分:19)

无论如何,关于无国籍会议没什么好说的。基本上,它仅用于一个目的:不缓存任何东西。

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

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

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

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

答案 1 :(得分:5)

本书Java Persistence with Hibernate有一个关于Hibernate中无状态会话的简短但足够的部分。如果您不想仅仅为了获取该信息而购买该书的副本,我找到了whole book on slideshare.com;第12.2.3节,第539页(slideshare.com上的第574页)。