[hibernate-issues] [Hibernate-JIRA] Created: (EJB-236) EntityManager Exception when closing transaction (Fetch.LAZY) takes no affect
Meinolf (JIRA)
noreply at atlassian.com
Fri Oct 6 16:06:24 EDT 2006
EntityManager Exception when closing transaction (Fetch.LAZY) takes no affect
-----------------------------------------------------------------------------
Key: EJB-236
URL: http://opensource.atlassian.com/projects/hibernate/browse/EJB-236
Project: Hibernate Entity Manager
Type: Bug
Environment: EntityManager 3.2.0.cr3, Sybase
Reporter: Meinolf
Priority: Critical
Attachments: HibernateEntityManagerTest.java, Tras001.java, Tras001Home.java
Hi gurus,
I just played a little bit arround with the Hibernate Entity Manager and found
a bug which is nearly similar to a already closed bug:
http://opensource.atlassian.com/projects/hibernate/browse/EJB-221
I've done an updated of all jar files of the "fix version/s 3.2.0.cr3 but this didn't help.
I'm using EntityManager and reading by id a Project object out of the database which
has a number of oneToMany references within. All references are declared as Fetch.LAZY
but using hibernates EntityManager does this not take into account.
When committing the transaction I get an
Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.arvato.hibernate.entities.Tras001.tras070 -> com.arvato.hibernate.entities.Tras070
without saving anything, I do just a simple read?!
So we've two errors here,
1. Why are Fetch.LAZY things read by default (Affected: EntityManager with annotation configuration and xml configuration as well)
2. TransientObjectException (Affected: EntityManager with annotation configuration. XML configuration does not throw this but does a read of lazy objects)
I'll attach the Domain Object and the test class to make some things more clear to you.
Cheers
Meinolf
P.S: There is another bug I found a few days ago regarding a wrong binding order of parameters.
Can you please take a look at http://forum.hibernate.org/viewtopic.php?t=965575
This happens only when using annotation configuration. (Affected: Session and EntityManager)
Here's the full stack trace:
javax.persistence.RollbackException: Error while commiting the transaction
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:63)
at com.arvato.hibernate.entities.test.HibernateEntityManagerTest.load(HibernateEntityManagerTest.java:71)
at com.arvato.hibernate.entities.test.HibernateEntityManagerTest.main(HibernateEntityManagerTest.java:31)
Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.arvato.hibernate.entities.Tras001.tras070 -> com.arvato.hibernate.entities.Tras070
at org.hibernate.engine.CascadingAction$9.noCascade(CascadingAction.java:350)
at org.hibernate.engine.Cascade.cascade(Cascade.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:130)
at org.hibernate.event.def.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:121)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:65)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:53)
... 2 more
Exception in thread "main" java.lang.IllegalStateException: Transaction not active
at org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:74)
at com.arvato.hibernate.entities.test.HibernateEntityManagerTest.load(HibernateEntityManagerTest.java:77)
at com.arvato.hibernate.entities.test.HibernateEntityManagerTest.main(HibernateEntityManagerTest.java:31)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list