java线程和事务:不支持嵌套事务
我有两个线程,A和B,每个线程都将数据插入到两个不同且不相关的表中。
然而,我得到了一个org.hibernate.TransactionException: nested transactions not supported
下面是为线程A执行插入的代码:
@Override
public void setA(List<A> a) throws HibernateException {
if (session == null) {
session = sessionFactory.openSession();
}
Transaction tx = session.beginTransaction();
try {
int count = 0;
for (A row : a) {
session.save(row);
if (count++ % 1000 == 0) {
session.flush();
session.clear();
}
}
tx.commit();
} catch (Exception e) {
tx.rollback();
} finally {
session.close();
}
}
线程B调用的另一个方法与此类似,只是它设置了B而不是As
如何让这两个线程在没有此异常的情况下并发运行
共 (0) 个答案