Dobry den,

Opet se na vas obracim s dotazem typu "asi jsem neco nepochopil" ;-)

 

Mame system postaveny na Springu a pouzivame JPA nad Hibernate. Zakladem
systemu je modul CORE, ktery zabezpecuje zakladni funkcnost a na nem jsou
zavisle ostatni moduly. Tento modul obsahuje take zakladni entity a jejich
konfiguraci (persistence.xml, definuje persistenceUnitManager s persistence
unit - nazveme ji Core, entityManagerFactory, transactionInterceptor, a
transactionManager). Take se zde vyskytuje definice DataSource. 

Pak mame modul, nazveme ho DEP1, ktery ale ma take svoje entity. A zde je
jadro meho problemu: jak zajistit aby Core fungovala i bez DEP1 v
deploymentech bez DEP1 a zaroven DEP1 fungovala korektne. Myslel jsem si, ze
vytvorenim samostatne persistence unit (tedy konfiguraci noveho
persistence.xml, persistenceUnitManager s persistence unit - nazveme ji
Dep1, entityManagerFactory, transactionInterceptor, a transactionManager) se
vse vyresi. Bohuzel pri nejakem pozadavku na cokoliv co ma neco spolecneho s
databazi me to pada na zajimavou vyjimku:

 

org.springframework.transaction.IllegalTransactionStateException: Pre-bound
JDBC Connection found! JpaTransactionManager does not support running within
DataSourceTransactionManager if told to manage the DataSource itself. It is
recommended to use a single JpaTransactionManager for all transactions on a
single DataSource, no matter whether JPA or JDBC access.

 

Co delam spatne?  Je problem, ze dve persistence unity pouzivaji jeden
DataSource? Nebo jsou ty "projekty" uplne spatne rozvzreny?

 

Jen pro informaci: Prime JDBC cally jsou provadeny pres
DataSourceUtils.getConnection(dataSource), takze by to s tim souviset
nemelo.

 

Predem diky moc za jakekoliv nakopnuti.

Dan.

Odpovedet emailem