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