在另一个TRANSACTIONAL方法

时间:2016-04-22 10:58:35

标签: java spring jpa transactions

也许这是一个难以理解的问题,但我无法理解这个问题: 这是一个简单的代码:

@Service
@Transactional
public class MainClass {

    @AutoWired
    private NestedService1 ns1; 

    public void mainMethod(){
       ns1.inner();
    }

}


@Service
public class NestedService1{

    @PersistenceContext
    private EntityManager em;

    @Transactional(propagation=Propagation.REQUIRES_NEW)
    public void inner(){
        //here retrieve some data from db with the EM
        Object1 obj1 = em.createQuery(query, Object1.class).getSingleResult();

        //Why obj1 is null ?
    }

}

obj1 未正确设置并抛出异常,如果我使用getResultList,则检索到的列表为空。

但是当我从MainClass中删除@Transactional注释时,obj1设置正确并且一切正常。

那么为什么NestedService1类中关联的EM不包含/管理任何数据? 请不要用EJB示例解释,因为我使用的是Spring / JPA,所以没有帮助,

0 个答案:

没有答案