openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matthew Broadhead <matthew.broadh...@nbmlaw.co.uk>
Subject Re: multiple persistence units
Date Thu, 15 Mar 2018 09:15:49 GMT
actually don't worry it seems to be working now.

i was disposing the entitymanager like this:
public void dispose(@Disposes @Any EntityManager entityManager) {
        if (entityManager.isOpen()) {
             entityManager.close();
         }
     }

whereas i needed to do this
public void disposeFile(@Disposes @Default @File EntityManager 
entityManager) {
         if (entityManager.isOpen()) {
             entityManager.close();
         }
     }

     public void disposeOperator(@Disposes @Operator EntityManager 
entityManager) {
         if (entityManager.isOpen()) {
             entityManager.close();
         }
     }

On 14/03/2018 20:13, Matthew Broadhead wrote:
> Hi,
> OpenJPA 2.4.2, TomEE 7.0.3
> since changing to multiple persistence units in the persistence.xml i 
> now get this message when trying to merge an @Entity
> <openjpa-2.4.2-r422266:1777108 fatal user error> 
> org.apache.openjpa.persistence.InvalidStateException: Encountered 
> unmanaged object "uk.me.kissy.file.entities.jpa.Category-3" in life 
> cycle state  unmanaged while cascading persistence via field 
> "uk.me.kissy.file.entities.jpa.File.category" during flush. However, 
> this field does not allow cascade persist. You cannot flush unmanaged 
> objects or graphs that have persistent associations to unmanaged objects.
>  Suggested actions: a) Set the cascade attribute for this field to 
> CascadeType.PERSIST or CascadeType.ALL (JPA annotations) or "persist" 
> or "all" (JPA orm.xml),
>  b) enable cascade-persist globally,
>  c) manually persist the related field value prior to flushing.
>  d) if the reference belongs to another context, allow reference to it 
> by setting StoreContext.setAllowReferenceToSiblingContext().
> FailedObject: uk.me.kissy.file.entities.jpa.Category-3
>     at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlushPC(SingleFieldManager.java:786)
>     at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:621)
>     at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:589)
>     at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:510)
>     at 
> org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:3055)
>     at 
> org.apache.openjpa.kernel.PDirtyState.beforeFlush(PDirtyState.java:39)
>     at 
> org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:1072)
> it seems like it is trying to persist an entity which should already 
> exist and be connected?


Mime
View raw message