在使用 java 持久性时,我需要澄清重试“可重试”异常(例如,锁定等待超时之类的东西)的正确方法。例如,使用如下伪代码:
EntityTransaction tx = em.getTransaction();
tx.begin();
for (a bunch of objects) {
em.persist(object);
}
tx.commit();
如果数据库中有锁,我有时会在 em.persist 调用中抛出异常。我可以将其包装在 try/catch 中并重试(显然有一些计数)?还是我必须包装整个 tx.begin/commit 并重做?
谢谢