Hibernate und JDBC in einer Transaktion

Habe ich eine Methode, markiert als @Transactional.
Es besteht aus mehrere Funktionen, die einer von Ihnen verwendet JDBC und die zweite Hibernate, Dritte - JDBC.
Das problem ist, dass änderungen, vorgenommen durch die Hibernate Funktion nicht sichtbar sind, in den letzten Funktionen, das funktioniert mit JDBC.

@Transactional
void update() {
  jdbcUpdate1();
  hibernateupdate1();
  jdbcUpdate2(); //results of hibernateupdate1() are not visible here    
}

Alle Funktionen, die konfiguriert sind, verwenden Sie die gleiche datasource:

<bean id="myDataSource" class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
        <property name="targetDataSource" ref="targetDataSource"/>
    </bean>

    <bean id="targetDataSource" class="org.apache.commons.dbcp.BasicDataSource"
          destroy-method="close" lazy-init="true" scope="singleton">
       <!-- settings here -->
    </bean>

myDataSource bean im code verwendet wird. myDataSource.getConnection() wird verwendet, um die Arbeit mit verbindungen im jdbc-Funktionen und

getHibernateTemplate().execute(new HibernateCallback() {
            public Object doInHibernate(Session session) throws HibernateException, SQLException {
               ... 
            }
        });

verwendet wird in der hibernate-Funktion.
Danke.

InformationsquelleAutor alex543 | 2010-11-11
Schreibe einen Kommentar