我有一个JAVA代码,
synchronized (this.getClass())
{
System.out.println("stsrt");
certRequest.setRequestNbr(
generateRequestNumber(
certInsuranceRequestAddRq.getAccountInfo().getAccountNumberId()));
System.out.println("outside funcvtion"+certRequest.getRequestNbr());
reqId = Utils.getUniqueId();
certRequest.setRequestId(reqId);
System.out.println(reqId);
ItemIdInfo itemIdInfo = new ItemIdInfo();
itemIdInfo.setInsurerId(certRequest.getRequestId());
certRequest.setItemIdInfo(itemIdInfo);
dao.insert(certRequest);
addAccountRel();
System.out.println("end");
}
现在假设我从两个线程获得了此代码的调用。我想要我的
dao.insert(certRequest);
应该在我的第二个线程来之前提交。我是Spring和Hibernate的新手。任何人都可以提出如何实施此建议。
最佳答案
Hibernate将遵守您对insert方法的调用顺序,但是如果您想使用第二个线程读取提交的值,则可能必须刷新会话:
getCurrentSession().flush()