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;
}
});
}