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