2
最初的代码是在下面的结构和它的工作完美的罚款 -如何将事务绑定到Hibernate中的多个线程?
初始代码:
@Transactional
class foo
{
void public work()
{
task1;
task2;
}
}
由于这两个任务可以并行执行,我们重构将它们放在两个线程。 写在不同的线程的两个任务,调用它们并联得到以下错误而相应的DAO调用
没有Hibernate的Session绑定到线程,配置不允许非事务之一创建这里
由于hibernate会话绑定到当前线程,它成为子线程的问题。
重构的代码:
@Transactional
class foo
{
void public work()
{
final Thread t1 = new Thread(new Job1());
t1.start();
final Thread t2 = new Thread(new Job2());
t2.start();
t1.join();
t2.join();
}
class Job1
{
public void run()
{
task1;
}
}
class Job2
{
public void run()
{
task1;
}
}
}