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:12:00 UTC

[5/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/3f26b6b9
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3f26b6b9
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3f26b6b9

Branch: refs/heads/camel-2.17.x
Commit: 3f26b6b9d1e621f85ee8536b179de99debcd8f8e
Parents: c10ad5b
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:11:38 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/3f26b6b9/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;
                 }
             });
         }