我在一个方法中插入数据(有@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
}
}
答案 0 :(得分:1)
为了保留对当前会话所做的更改,您可以调用entityManager.flush();
答案 1 :(得分:0)
我找到了答案......从ServiceLayer.method2()
删除@transactional后,它运行良好。
答案 2 :(得分:0)
它可能有效,但不是解决方案。
在您的情况下,您来自 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/splash_bg" />
<item>
<bitmap
android:gravity="centre"
android:src="@drawable/splash_logo" />
</item>
</layer-list>
的 Transaction
创建了一个尚未提交的事务。这就是你无法获取它的原因。