java - Multiple database connection issue in Spring project -


i'm going configure 2 databases connections in 1 spring project. created 2 data source beans in following way.

   @bean(destroymethod = "close")         public bonecpdatasource getdatasource() {              ....             ....             return datasource;     }      @bean(destroymethod = "close")         public bonecpdatasource getdatasource2() {           ....          ....          return datasource;     } 

this way created entity managers.

@bean @qualifier("entitymanagerfactory") public localcontainerentitymanagerfactorybean entitymanagerfactory() {     ...     em.setdatasource(getdatasource());     em.setpersistenceunitname("entitymanagerfactory");     ...      return em; }  @bean @qualifier("entitymanagerfactory2") public localcontainerentitymanagerfactorybean entitymanagerfactory2() {     ...     em.setdatasource(getdatasource2());     em.setpersistenceunitname("entitymanagerfactory2");     ...      return em; } 

then auto-wired above entity managers in repository implementation classes , works fine non transactional data.

@persistencecontext(unitname = "entitymanagerfactory2") @qualifier(value = "entitymanagerfactory2") private entitymanager entitymanager2; 

then created transactional managers in following way.

@bean @primary public jpatransactionmanager gettransactionmanager() {     jpatransactionmanager transactionmanager = new jpatransactionmanager();     transactionmanager.setentitymanagerfactory(entitymanagerfactory().getobject());      return transactionmanager; }  @bean(name = "transactionmanager2") @qualifier("transactionmanager2") public jpatransactionmanager gettransactionmanager2() {     jpatransactionmanager transactionmanager = new jpatransactionmanager();     transactionmanager.setentitymanagerfactory(entitymanagerfactory2().getobject());      return transactionmanager; }      return transactionmanager; } 

but issue is, can't insert or update tables using bean transactionmanager2 because don't know correct way configure it.

but can insert or update using gettransactionmanger issue can't configure second connection. got error.

caused by: javax.persistence.transactionrequiredexception: no transaction in progress     @ org.hibernate.jpa.spi.abstractentitymanagerimpl.checktransactionneeded(abstractentitymanagerimpl.java:1171)     @ org.hibernate.jpa.spi.abstractentitymanagerimpl.flush(abstractentitymanagerimpl.java:1332)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) 

when want use second transaction manager, need annotate service methods with:

@transactional("transactionmanager2") public void insertpost(post post) { ... } 

Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -