[ https://issues.apache.org/activemq/browse/CAMEL-2980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=60925#action_60925 ]
Christian Mueller commented on CAMEL-2980: ------------------------------------------ Unfortunately not. I have fixed [CAMEL-2982|https://issues.apache.org/activemq/browse/CAMEL-2982] with the new 'usePersist' option. What I have to change for this issue is something like this: is: {code} entityManager.persist(entity); {code} shall: {code} Object managedEntity = entityManager.persist(entity); exchange.getIn().setBody(managedEntity); {code} But this is not so trivial, because the input could be not only an annotated entity, it could also be a list, map, ... and in the current implementation we iterate over a collection (which may be only have one entry): {code} public void process(Exchange exchange) { exchange.getIn().setHeader(JpaConstants.JPA_TEMPLATE, endpoint.getTemplate()); final Object values = expression.evaluate(exchange, Object.class); if (values != null) { template.execute(new JpaCallback() { public Object doInJpa(EntityManager entityManager) throws PersistenceException { Iterator iter = ObjectHelper.createIterator(values); Object value = iter.next(); if (endpoint.isUsePersist()) { entityManager.persist(value); } else { entityManager.merge(value); } } if (endpoint.isFlushOnSend()) { entityManager.flush(); } return null; } }); } exchange.getIn().removeHeader(JpaConstants.JPA_TEMPLATE); } {code} Christian > camel-jpa doesn't use EntityManager.merge(entity) in the right way > ------------------------------------------------------------------ > > Key: CAMEL-2980 > URL: https://issues.apache.org/activemq/browse/CAMEL-2980 > Project: Apache Camel > Issue Type: Bug > Components: camel-jpa > Affects Versions: 2.4.0 > Environment: All > Reporter: Christian Mueller > Assignee: Christian Mueller > Fix For: 2.5.0 > > > The EntityManager.merge(entity) method returns the merged entity. The > exchange in message body should be updated with the merged entity (what > camel-jpa currently not do). > I running into this problem, because after saving an entity in the database, > the id field was still null. So, we don't know, which entity in the database > is the corresponding to this entity... :-( > Have a look in the process method of > [JpaProducer|http://svn.apache.org/viewvc/camel/trunk/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java?view=markup] > and the Java doc from the > [EntityManager|http://download.oracle.com/docs/cd/E17477_01/javaee/5/api/javax/persistence/EntityManager.html#merge%28T%29]. > Christian -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.