I figured this out, the null was coming because of me not defining any attribute as @Id in PurchaseOrder entity.
But now when I run this, it goes in a loop of the following, without moving to next point it route (log). See if anybody can help me on this. 20:43:50,204 | DEBUG | pa.PurchaseOrder | JpaTransactionManager | 136 - org.springframework.transaction - 3.1.3.RELEASE | Creating new transaction with name [null]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT^M 20:43:50,205 | DEBUG | pa.PurchaseOrder | JpaTransactionManager | 136 - org.springframework.transaction - 3.1.3.RELEASE | Opened new EntityManager [org.apache.aries.jpa.container.impl.EntityManagerWrapper@1e93738] for JPA transaction^M 20:43:50,213 | DEBUG | pa.PurchaseOrder | JpaConsumer | 244 - org.apache.camel.camel-jpa - 2.10.0.redhat-60024 | Flushing EntityManager^M 20:43:50,213 | DEBUG | pa.PurchaseOrder | JpaTransactionManager | 136 - org.springframework.transaction - 3.1.3.RELEASE | Initiating transaction commit^M 20:43:50,213 | DEBUG | pa.PurchaseOrder | JpaTransactionManager | 136 - org.springframework.transaction - 3.1.3.RELEASE | Committing JPA transaction on EntityManager [org.apache.aries.jpa.container.impl.EntityManagerWrapper@1e93738]^M 20:43:50,213 | DEBUG | pa.PurchaseOrder | JpaTransactionManager | 136 - org.springframework.transaction - 3.1.3.RELEASE | Closing JPA EntityManager [org.apache.aries.jpa.container.impl.EntityManagerWrapper@1e93738] after transaction^M 20:43:50,213 | DEBUG | pa.PurchaseOrder | EntityManagerFactoryUtils | 242 - org.springframework.orm - 3.1.3.RELEASE | Closing JPA EntityManager^M 20:43:50,427 | DEBUG | heckpoint Worker | MessageDatabase | 114 - org.apache.activemq.activemq-osgi - 5.8.0.redhat-60024 | Checkpoint started.^M -- View this message in context: http://camel.465427.n5.nabble.com/camel-jpa-issue-tp5733238p5733268.html Sent from the Camel - Users mailing list archive at Nabble.com.