2015-03-04 8 views
0

У меня 2 EntitiesEJB 3.0 - Entity отношения - javax.ejb.EJBTransactionRolledbackException

  1. OrderDetails
  2. Заказы

В Orders У меня есть @ManyToOne связь с другим названием entityCustomer. В OrderDetails у меня есть два отношения @ManyToOne, которые ссылаются на Orders и другое лицо «Пицца».

Я получаю javax.ejb.EJBTransactionRolledbackException исключение, когда я схожу OrderDetails субъект. Но, когда я удаляю Orders отношение в пределах OrderDetails Я могу сгладить сущность плавно.

Невозможно объединить объект с отношением ManyToOne с сущностью, у которой стажер имеет отношение @ManyToOne к другому объекту.

My applicationclient вызовет метод удаленного сеанса. который будет пытаться сохранить OrderDetails, как это.

Pizzas pizza = new Pizzas(); 
    Query pizzaQuery = entityManager.createQuery("select pizza from  Pizzas pizza where pizza.pizzaCode like 'PIZERIA1'"); 

    pizza = (Pizzas) pizzaQuery.getSingleResult(); 

    orderSerialNumber = 1; 

    Orders orders = new Orders(); 
    Query ordersQuery = entityManager.createQuery("select order from Orders order where order.orderNumber = 453"); 
    orders = (Orders) ordersQuery.getSingleResult(); 

    OrderDetails orderDetails = new OrderDetails(); 
    orderDetails.setSerialNumber(orderSerialNumber); 
    orderDetails.setPizzas(pizza); 
    orderDetails.setOrders(orders); 
    entityManager.merge(orderDetails); 

Я получаю при попытке слиться.

StackTrace

Exception in thread "main" javax.ejb.EJBTransactionRolledbackException: Transaction rolled back 
at org.jboss.ejb3.tx.Ejb3TxPolicy.handleEndTransactionException(Ejb3TxPolicy.java:54) 
at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:175) 
at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87) 
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:190) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:186) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.stateful.StatefulContainer.dynamicInvoke(StatefulContainer.java:571) 
at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53) 
at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91) 
at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) 
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:891) 
at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:744) 
at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:697) 
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:524) 
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:232) 
Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Could not commit transaction. 
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1435) 
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:137) 
at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75) 
at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:170) 
at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87) 
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:190) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:186) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.stateful.StatefulContainer.dynamicInvoke(StatefulContainer.java:571) 
at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53) 
at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91) 
at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) 
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:891) 
at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:744) 
at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:697) 
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:524) 
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:232) 
at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:211) 
at org.jboss.remoting.Client.invoke(Client.java:1724) 
at org.jboss.remoting.Client.invoke(Client.java:629) 
at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62) 
at com.sun.proxy.$Proxy5.invoke(Unknown Source) 
at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207) 
at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164) 
at com.sun.proxy.$Proxy4.placeOrder(Unknown Source) 
at com.client.ApplicationBeansClient.main(ApplicationBeansClient.java:46) 
at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:72) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62) 
at com.sun.proxy.$Proxy5.invoke(Unknown Source) 
at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207) 
at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164) 
at com.sun.proxy.$Proxy4.placeOrder(Unknown Source) 
at com.client.ApplicationBeansClient.main(ApplicationBeansClient.java:46) 
Caused by: java.lang.Throwable: setRollbackOnly called from: 
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.setRollbackOnly(TransactionImple.java:392) 
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.setRollbackOnly(BaseTransaction.java:195) 
at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.setRollbackOnly(BaseTransactionManagerDelegate.java:123) 
at org.hibernate.ejb.AbstractEntityManagerImpl.markAsRollback(AbstractEntityManagerImpl.java:421) 
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:576) 
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:614) 
at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:513) 
at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:101) 
at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:269) 
at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:89) 
at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177) 
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1423) 
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:137) 
at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75) 
at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:170) 
at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87) 
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:190) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:186) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67) 
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
at org.jboss.ejb3.stateful.StatefulContainer.dynamicInvoke(StatefulContainer.java:571) 
at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53) 
at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91) 
at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) 
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:891) 
at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:744) 
at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:697) 
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:524) 
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:232) 

OrderDetails.java

@Entity 
    @Table(name="P_ORDER_DETAILS") 
    public class OrderDetails implements Serializable 
    { 
     @Id 
     private int serialNumber; 

     //private Orders orders; 

     private Pizzas pizzas; 

     public int getSerialNumber() 
     { 
      return this.serialNumber; 
     } 
     public void setSerialNumber(int serialNumber) 
     { 
      this.serialNumber = serialNumber; 
     } 

    /* @ManyToOne 
     @JoinColumn(name="ORDERS",referencedColumnName="ORDER_NUMBER") 
     public Orders getOrders() 
     { 
      return this.orders; 
     } 
     public void setOrders(Orders orders) 
     { 
      this.orders = orders; 
     }*/ 

     @ManyToOne 
     @JoinColumn(name="PIZZAS",referencedColumnName="PIZZACODE") 
     public Pizzas getPizzas() 
     { 
      return this.pizzas; 
     } 
     public void setPizzas(Pizzas pizzas) 
     { 
      this.pizzas = pizzas; 
     } 
    } 

Orders.java

@Entity 
@Table(name="P_ORDERS") 
public class Orders implements Serializable 
{ 
    @Id 
    @Column(name="ORDER_NUMBER") 
    private int orderNumber; 

    @Column(name="CUSTOMER") 
    private Customer customer; 

    public void setOrderNumber(int orderNumber) 
    { 
     this.orderNumber = orderNumber; 
    } 
    public int getOrderNumber() 
    { 
     return this.orderNumber; 
    } 

    public void setCustomer(Customer customer) 
    { 
     this.customer = customer; 
    } 

    @ManyToOne 
    @JoinTable(name="P_CUSTOMER_ORDERS", [email protected](name="CUSTOMER",referencedColumnName="USERNAME")) 
    public Customer getCustomer() 
    { 
     return this.customer; 
    } 
} 
+0

'javax.ejb.EJBTransactionRolledbackException' происходит по какой-то причине, пожалуйста, напишите полный трассировки стека. –

+0

@PredragMaric Я добавил stacktrace. – saikumarm

+2

Возможно, вы проглотили какое-то исключение в 'com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate()'? Этот стек не обеспечивает ничего полезного. –

ответ

0

я столкнулся та же проблема, и я решил это, создав сервер с конфигурацией all, как показано на рисунке ниже (возможно, вы создали сервер с конфигурацией default).

enter image description here