Hi,

I'm trying to persist a heirarchical data object implemented as an EJB3 entity 
bean via a stateless session bean.  The main object is a Form object, which has 
a @OneToOne relationship with an object representing each page of the form.  
Each page has a @OneToOne relationship with an object representing sections of 
the page.  Each section contains only primitive data types.  

When I attempt to persist the object using the remote interface for the Session 
bean, I get 'org.jboss.tm.JBossRollbackException's.. Unable to commit.  I set a 
property in persistence.xml to show SQL statements and it appears as though 
it's trying to insert the record for the Form before it's populating each of 
the foreign key constraints.  i.e., if I understand the output correctly, it's 
storing the object from the top down rather than from the bottom up.  This 
violates the referential integrity constraints on the DB server & the insert 
fails.

Client shows:

  | Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: 
org.jboss.tm.JBossRollbackException: Unable to commit, 
tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=sholo/18, BranchQual=, 
localId=18] status=STATUS_NO_TRANSACTION; - nested throwable: 
(javax.persistence.PersistenceException: 
org.hibernate.TransientObjectException: 
gov.nj.dhss.bdr.form.model.page.ChildPageModel)
  |     at 
org.jboss.aspects.tx.TxPolicy.handleEndTransactionException(TxPolicy.java:198)
  |     at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:180)
  |     at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87)
  |     at 
org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:192)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:54)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:225)
  |     at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:104)
  |     at 
org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
  |     at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:828)
  |     at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:681)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:358)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:398)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:239)
  | Caused by: org.jboss.tm.JBossRollbackException: Unable to commit, 
tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=sholo/18, BranchQual=, 
localId=18] status=STATUS_NO_TRANSACTION; - nested throwable: 
(javax.persistence.PersistenceException: 
org.hibernate.TransientObjectException: 
gov.nj.dhss.bdr.form.model.page.ChildPageModel)
  |     at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:369)
  |     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:192)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:54)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:225)
  |     at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:104)
  |     at 
org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
  |     at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:828)
  |     at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:681)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:358)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:398)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:239)
  |     at 
org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:190)
  |     at org.jboss.remoting.Client.invoke(Client.java:525)
  |     at org.jboss.remoting.Client.invoke(Client.java:488)
  |     at 
org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:55)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:65)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102)
  |     at $Proxy0.saveForm(Unknown Source)
  |     at 
gov.nj.dhss.bdr.BirthDefectsRegistry$BirthDefectsRegistryController$NextAction.actionPerformed(BirthDefectsRegistry.java:188)
  |     at 
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
  |     at 
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
  |     at 
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
  |     at 
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
  |     at 
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
  |     at java.awt.Component.processMouseEvent(Component.java:5488)
  |     at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
  |     at java.awt.Component.processEvent(Component.java:5253)
  |     at java.awt.Container.processEvent(Container.java:1966)
  |     at java.awt.Component.dispatchEventImpl(Component.java:3955)
  |     at java.awt.Container.dispatchEventImpl(Container.java:2024)
  |     at java.awt.Component.dispatchEvent(Component.java:3803)
  |     at 
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
  |     at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
  |     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
  |     at java.awt.Container.dispatchEventImpl(Container.java:2010)
  |     at java.awt.Window.dispatchEventImpl(Window.java:1774)
  |     at java.awt.Component.dispatchEvent(Component.java:3803)
  |     at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
  |     at 
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
  |     at 
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
  |     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
  |     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
  |     at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
  | Caused by: javax.persistence.PersistenceException: 
org.hibernate.TransientObjectException: 
gov.nj.dhss.bdr.form.model.page.ChildPageModel
  |     at 
org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:562)
  |     at 
org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:482)
  |     at 
org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionImpl.java:1488)
  |     at org.jboss.tm.TransactionImpl.beforePrepare(TransactionImpl.java:1107)
  |     at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:321)
  |     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:192)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:54)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
  |     at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
  |     at 
org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:225)
  |     at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:104)
  |     at 
org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
  |     at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:828)
  |     at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:681)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:358)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:398)
  |     at 
org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:239)
  | Caused by: org.hibernate.TransientObjectException: 
gov.nj.dhss.bdr.form.model.page.ChildPageModel
  |     at 
org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
  |     at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
  |     at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:221)
  |     at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:476)
  |     at 
org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:2900)
  |     at 
org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:474)
  |     at 
org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:197)
  |     at 
org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:120)
  |     at 
org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:195)
  |     at 
org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
  |     at 
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
  |     at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:988)
  |     at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:337)
  |     at 
org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:473)
  |     ... 25 more
  | 
  | 
  | Server shows:
  | 
  |   | 15:11:34,142 INFO  [STDOUT] Hibernate: insert into Form (child_ID, 
title, identification_ID, mother_ID, father_ID, guardianAgency_ID
  |   | , guardian_ID) values (?, ?, ?, ?, ?, ?, ?)
  |   | 15:11:34,220 INFO  [STDOUT] Form was persisted.
  |   | 
  | 
  | The configuration is as follows: 
  | JBoss 4.0.4.CR2
  | MS SQL Server 2005 using JTDS v1.2 driver
  | Client is a SWING app.
  | 
  | Any ideas?  (sorry for the long exception, btw)
  | 
  | Thank you,
  | Scott

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3937999#3937999

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3937999


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to