本文发表在 rolia.net 枫下论坛1,你如果使用application server,另外重复绑定hibernate session到ThreadLocal,那就表明你不明白Hibernate的设定。因为在Hibernate 3.0里面,如果你的session transaction定义为JTA(一般使用application server都会用它的JTA manager),那么Hibernate自动绑定hibernate session到JTA transaction,不需要做任何设定。
2,绑定在ThreadLocal和JTA Transaction,不能实现conversational transaction。应该不用解释了吧。所以用这种方法来实现conversational transaction, 那是不行的。
3,只能自定义。hibernate session可以绑定在http session上,可以绑定在stateful bean上,anything which makes sense。至于httpsession close时候如何close hibernate的session,
a. 你如果确实关心这个问题的话,你如果知道servlet 2.5标准,就不会问出这个傻问题。servlet 2.5标准里面定义了无数的listener,自己去查。
b. 你如果知道flush, commit, close的区别,都不会去关心这个问题。
4,看来国人计算机不行的主要原因是看不懂英文专业技术书籍,一遇到事情就开始瞎猜,七嘴八舌地好像记得应该以前做过之类,说不出根本原因。当然很少有人牛逼到一遇到问题就查源程序的地步,所以说熟悉专业技术书籍,特别是reference book,很重要,绝大部分时候查资料比查源程序快得多。当然很多人会解释说只会看书不会动手,没用,所以为了避免不会动手,就坚决动手不看书。这个逻辑很convenient,但是会让你变傻。更多精彩文章及讨论,请光临枫下论坛 rolia.net
2,绑定在ThreadLocal和JTA Transaction,不能实现conversational transaction。应该不用解释了吧。所以用这种方法来实现conversational transaction, 那是不行的。
3,只能自定义。hibernate session可以绑定在http session上,可以绑定在stateful bean上,anything which makes sense。至于httpsession close时候如何close hibernate的session,
a. 你如果确实关心这个问题的话,你如果知道servlet 2.5标准,就不会问出这个傻问题。servlet 2.5标准里面定义了无数的listener,自己去查。
b. 你如果知道flush, commit, close的区别,都不会去关心这个问题。
4,看来国人计算机不行的主要原因是看不懂英文专业技术书籍,一遇到事情就开始瞎猜,七嘴八舌地好像记得应该以前做过之类,说不出根本原因。当然很少有人牛逼到一遇到问题就查源程序的地步,所以说熟悉专业技术书籍,特别是reference book,很重要,绝大部分时候查资料比查源程序快得多。当然很多人会解释说只会看书不会动手,没用,所以为了避免不会动手,就坚决动手不看书。这个逻辑很convenient,但是会让你变傻。更多精彩文章及讨论,请光临枫下论坛 rolia.net