0
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:Как Self-Invoke метод бобы в OSGI
<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 создает новую транзакцию (если она уже не в сделке). Я хотел бы вызвать метод «требуетNewMethod» изнутри «requiredMethod» и заставить менеджера JPA создать новую (вложенную) транзакцию.
Например, если выше были EJB, и я был в EJB контейнер я мог бы сделать это
public void requiredMethod(){
sessionContext.getBusinessObject(MyTestBean.class).requiresNewMethod();
}
Спасибо, христианин. Я хотел бы получить более чистое решение. Мне не нравится иметь такую ссылку цикла внутри боба. Я попробую ваше предложение, чтобы убедиться, что это работает, и я буду использовать его в качестве последнего решения. Благодаря! – Pitelk
Выключает инжекцию компонента в сам компонент как свойство, а затем вызывать нужные методы с помощью инъецируемого компонента, не работает, ведет себя так же, как вызов метода непосредственно. С другой стороны, если я создаю новый bean-компонент и внедряю, он работает как шарм .. но создание нового компонента не то, что я хотел. благодаря – Pitelk