java - 获取同一事务中使用@Transactional插入的数据

标签 java spring spring-mvc spring-mybatis

我正在一个方法中插入数据(有@Transactional(propagation = Propagation.Required)),但在另一种方法中(有@Transactional(propagation = Propagation.Required)) 如果我尝试获取相同的数据,它会给出 null。

这两个方法都是用@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW)写在服务层

如何获取同一事务中插入的数据。 像这样的东西:-

 @Service
    public class Service{
        @Transactional
        public void method(){
            mapper.insert();        //insert to DB(Using Mapper interface)
            ServiceLayer.method2()
        }
    }

@Service
public void ServiceLayer{

    @Transactional
    public static void method2(){
        result  = mapper.select() //Select inserted data - returning null
    }
}

最佳答案

为了保留对当前 session 所做的更改,您可以调用entityManager.flush();

关于java - 获取同一事务中使用@Transactional插入的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36132667/

相关文章:

c++ - try/catch block 中的完整代码

java - 将值从 Activity 传递到广播接收器时出现 NullPointerExceptoin

java - 在方法上使用 @Async 注释时来自 CglibAopProxy 的 NPE

java - 店铺搜索

hibernate - spring + hibernate - 将实体映射到不同的数据源

java - 是否可以从winforms应用程序登录到使用spring security的网站?

java - 在 Spring MVC 2.5 中设置 URL 映射的问题

java - Android ListView CHOICE_MODE_SINGLE 不会设置

java - Ajax POST 删除同名的多个项目 Spring MVC

当异常()内部抛出异常时,Java Play 自定义onServerError不会触发