Am coming up with a Spring & Hibernate application which has Inserts/Update to its own system database and it even has to Insert/update other systems with different database types.
How can i achieve the transaction management with Hibernate while performing with different databases.
-Bharat
You can specify two separate transaction managers.
Once your set up is done you can use the qualifier to specify the transaction manager:
Assuming you are looking for transactions involving multiple datasources, I highly recommend you give this series of posts by David Syer (spring lead) on your options:
http://www.javaworld.com/article/2077963/open-source-tools/distributed-transactions-in-spring--with-and-without-xa.html
For example, some databases even support transactions across databases schemas under certain circumstances without distributed transactions (see here).
There are other options other than XA 2-phase commit transaction managers (as they introduce significant overhead and complexity) but they involve different trade-offs.
This will need to be done by the container where your application runs (e.g. JBoss App Server) or you'll need to hook into some other transaction manager such as Bitronix. Out of the box in a JavaSE application, you'll only get a "best-effort" attempt at managing a transaction between multiple datasources.
You'll need to define connections to both databases using an XA driver and then make sure your transaction manager is leveraging a two-phase commit.
If you aren't familiar with Global transactions, start here: http://docs.spring.io/autorepo/docs/spring/4.2.x/spring-framework-reference/html/transaction.html#transaction-global