You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/08/16 12:11:58 UTC

[3/6] camel git commit: CAMEL-10245 Fixed JpaProducer remove feature

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 <bo...@gmail.com>
Authored: Mon Aug 15 16:31:30 2016 +0200
Committer: Claus Ibsen <da...@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;
                 }
             });
         }