java - 同步数据提交

标签 java spring hibernate

我有一个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 方法的顺序,但如果您想使用第二个线程读取提交的值,您可能必须刷新 session :

getCurrentSession().flush()

关于java - 同步数据提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31968672/

相关文章:

java - 查询在 SQL*Plus 上运行但不在 jdbc 程序中运行

java - JavaFx 窗口很少

Spring MVC 找不到 *.jsp 文件

java - 如何使用 spring boot 2 和千分尺测量服务方法

java - hibernate 保存并使用相同的 session ,相同的事务

java - getCurrentSession 给出 No Session Bound to Context,openSession 则没有

java - 如何构建大类?

java - 编写Android项目时的常见错误

java - 如何在不实现可序列化的情况下在 spring-struts web 应用程序中将 DTO 对象从客户端传输到服务器

hibernate - 在 Hibernate 中查询复合表