[ 
https://issues.apache.org/jira/browse/DELTASPIKE-673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14063611#comment-14063611
 ] 

Thomas Hug commented on DELTASPIKE-673:
---------------------------------------

Hi Philip! The goal would be that you can simply use @Transactional in your 
repository methods, but as you noted it doesn't work on all PartialBeans. Your 
custom method is invoked directly and the Data invocation handler has no place 
to hook in to start the TX.

As a workaround, a possibility might be to create a repository extension 
(http://deltaspike.apache.org/data#extensions) and do something like a 
transaction template. See the note after the 2nd CAUTION block under 
http://deltaspike.apache.org/data#transactions. Hope that helps for now.

> CdiQueryInvocationContext#isNew does not work well with OpenJpa and detached 
> entities
> -------------------------------------------------------------------------------------
>
>                 Key: DELTASPIKE-673
>                 URL: https://issues.apache.org/jira/browse/DELTASPIKE-673
>             Project: DeltaSpike
>          Issue Type: Improvement
>          Components: Data-Module
>    Affects Versions: 1.0.0
>            Reporter: Philip Herbst
>            Assignee: Thomas Hug
>
> I'm trying to use org.apache.deltaspike.data.api.EntityRepository on TomEE 
> 1.5.2 with detached entities. Whenever I try to call the save method of 
> EntityRepository I get 
> {code}
> org.apache.openjpa.persistence.EntityExistsException: Attempt to persist 
> detached object
> {code}
> CdiQueryInvocationContex#isNew returns true for my detached entity and and 
> because of that EntityManager#persist is called. 
> see org.apache.deltaspike.data.impl.handler.EntityRepositoryHandler#save
> From OpenJpaPersistenceUtil#getIdentifier(OpenJPAEntityManagerFactory emf,    
>    Object entity)
> {code}
>     /**
>      * Get the object identifier for a persistent entity managed by one
>      * of the entity managers of the specified entity manager factory.
>      * @return The identifier of the entity or null if the entity does
>      * not have an identifier assigned or is not managed by any of the
>      * entity managers of the entity manager factory.
>      */
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to