我有一个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()

07-25 21:33