Bhu*_*han 3 java nhibernate hibernate
我的程序结构如下:
在我的主java类中:
for () // this will execute for say 5000 times ---- LINE 1
{
// do select on Database1 (this will select say 10000 rows) ---- LINE 2
// do some computations (mainly string operations) ---- LINE 3
call function1() // this will do some update on Database1 ---- LINE 4
}
Run Code Online (Sandbox Code Playgroud)
现在,我正在尝试使用Hibernate访问Database1.我的问题是我应该如何使用hibernate会话来访问它.我应该什么时候开始会议,什么时候结束呢?
如果我在for()循环之前启动它,我可以将相同的会话传递给function1(),因为它访问同一个数据库吗?或者一旦我选择(LINE 1),我必须关闭它并在function1()中打开一个新会话?我主要关心的是优化整体性能并最大限度地缩短总体执行时间.
我是Hibernate的新手.因此,如果我问一个非常愚蠢的怀疑,请原谅我.
假设您希望所有更新都是单个原子事务,则需要打开Session并在循环之前开始事务.然后,在循环之后,您将要提交事务并关闭会话.
如果每个更新都应该是它自己的原子事务,那么您仍然应该只打开一个Session,然后对循环的每次迭代使用一个新事务.