我们在我们的TopLink应用程序中使用了Java9.0.3.7。我最近添加了两个新的表,我试图保存到。我将其与一些类似的表进行比较,这些表可以正确保存,而且看起来一切都是一样的。我比较了TopLink Mappling WorkBench 9.0.3.5创建的描述符,它们看起来也是一样的。
从我们的行动课上
submissionDao.transaction(sessionInfo.getClerkReviewSubmission(),
new TransactionBlock<ClerkReviewSubmission>() {
public void merge(ClerkReviewSubmission detached,
ClerkReviewSubmission managed) {
ClerkReviewTask task = mergeTask(new ClerkReviewTask(),
myForm);
for(ClerkReviewCase crCase: sessionInfo.getClerkReviewSubmission().getCases()){
createCaseTask(crCase, task);
}
}
});
private final ClerkReviewCaseTask createCaseTask(ClerkReviewCase crCase,
ClerkReviewTask task) {
ClerkReviewCaseTask caseTask = new ClerkReviewCaseTask();
caseTask.setClerkReviewCase(crCase);
caseTask.setTask(task);
crCase.getCaseTasks().add(caseTask);
task.getCaseTasks().add(caseTask);
return caseTask;
}我们的BaseDAO课程
public T transaction(T detached, TransactionBlock transactionBlock) throws BadDBConnection {
Session session = centralSourceInjector.inject();
UnitOfWork uow = session.acquireUnitOfWork();
try {
T managed = (T)uow.registerObject((T) detached);
transactionBlock.merge(detached, managed);
uow.commit();
session.refreshObject(detached);
return managed;
} catch(OptimisticLockException ole){
uow.rollbackTransaction();
throw ole;
} finally {
uow.release();
}
}当我调试时,我进入了BaseDAO类,我在日志中看到的全部内容是:
开始工作单元提交ClientSession(5022219)--Connection(7034305)--begin事务ClientSession(5022219)--Connection(7034305)--commit事务处理UnitOfWork(3889394)--最终工作单元提交UnitOfWork(3889394)-释放工作单元
如有任何建议或指导,将不胜感激。
发布于 2014-02-11 20:06:28
一位同事审阅了我的代码,建议我再增加一行,这样就解决了问题。他建议在我的动作课上做一个小小的改变:
submissionDao.transaction(sessionInfo.getClerkReviewSubmission(),
new TransactionBlock<ClerkReviewSubmission>() {
public void merge(ClerkReviewSubmission detached,
ClerkReviewSubmission managed) {
ClerkReviewTask task = mergeTask(new ClerkReviewTask(),
myForm);
for (ClerkReviewCase crCase : sessionInfo
.getClerkReviewSubmission().getCases()) {
ClerkReviewCase crCase2 = managed.findCase(crCase
.getIcisCaseId());
createCaseTask(crCase2, task);
}
}
});
}https://stackoverflow.com/questions/21631333
复制相似问题