Class MyTestBean {
public void requiredMethod(){
//somehow call the "requiresNewMethod" with a new transaction
//provided from the container
this.requiresNewMethod(); //this does not work.. no new transaction is created
}
public void requiresNewMethod(){ //code..}
}
Blueprint xml:
<bean id="myTestBean "
class="MyTestBean ">
<jpa:context property="entityManager" unitname="sample" />
<tx:transaction method="requiredMethod" value="Required" />
<tx:transaction method="requiresNewMethod" value="RequiresNew" />
</bean>
当调用requiredMethod时,JPA管理器会创建一个新事务(如果它尚未在事务中)。我想从“requiredMethod”中调用方法“requiresNewMethod”并强制JPA管理器创建一个新的(嵌套的)事务。
例如,如果以上是EJB,而我在EJB容器中,我可以这样做
public void requiredMethod(){
sessionContext.getBusinessObject(MyTestBean.class).requiresNewMethod();
}
答案 0 :(得分:1)
您可以尝试将自己的bean注入MyTestBean的属性并以这种方式访问它。