CAMEL-10245 Fixed JpaProducer remove feature

Check if entity is managed in current persistence context and merge if needed 
before removing.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f053f176
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f053f176
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f053f176

Branch: refs/heads/master
Commit: f053f1760d85ea157bae821cad11b6a2f0071f2c
Parents: 4b1db04
Author: Bob Gaudaen <bob.gaud...@gmail.com>
Authored: Mon Aug 15 16:31:30 2016 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue Aug 16 14:07:53 2016 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/camel/component/jpa/JpaProducer.java  | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/f053f176/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
 
b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
index dc73588..c8f5483 100644
--- 
a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
+++ 
b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
@@ -124,8 +124,10 @@ public class JpaProducer extends DefaultProducer {
                  */
                 private Object remove(final Object entity) {
                     LOG.debug("remove: {}", entity);
-                    entityManager.remove(entity);
-                    return entity;
+
+                    Object managedEntity = entityManager.contains(entity) ? 
entity : entityManager.merge(entity);
+                    entityManager.remove(managedEntity);
+                    return managedEntity;
                 }
             });
         }

Reply via email to