Tek bir dataSource var, Spring 3.0.3, Hazırda 3.5.1 JPA sağlayıcısı olarak kullanıyorum ve MyBatis 3.0 kullanıyorum. Bazı sorgular için 2 ve benim uygulama Tomcat 6 üzerinde çalışır. Ben her ikisi de aynı işlemi paylaştı aynı işlemden aynı işlemi paylaşmak gibi görünüyor, aynı yöntemle hem çağrıldığında bir HibernateDAO ve bir MyBatisDAO var, onlar farklı bağlantılar olsun .
Onları nasıl yapabilirim?Spring, JPA (Hazırda Bekleme) ve JDBC (JdbcTemplate veya MyBatis) ile aynı işlemi paylaşacak şekilde nasıl yapılandırılır
DataSourceUtils.getConnection (dataSource) bağlantısından bir bağlantı kurmayı denedim ve MyBatis tarafından kullanılan ve MyBatis yapılandırmasında sorun olduğunu düşündüğüm ve JpaTransactionManager'ı kullanamayan bir dosya alıyorum. Birden çok kez DataSoruceUtils.getConnection çağırmak bile her zaman aynı bağlantıyı verir, tamam.
kısmi ApplicationContext
<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
<property name="driverClassName" value="${database.driverClassName}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
</bean>
<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager"/>
<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:META-INF/mybatis/mybatis-config.xml" />
</bean>
kısmi mybatis yapılandırma
(erkek kedi gerçekten :) bunu kullanıyorsa bilmiyorum rağmen) ben yay enstrüman-tomcat en classloader çalıştığım bazı googling sonra
<settings>
<setting name="cacheEnabled" value="false" />
<setting name="useGeneratedKeys" value="false" />
<setting name="defaultExecutorType" value="REUSE" />
<setting name="lazyLoadingEnabled" value="false"/>
</settings>
kısmi persistence.xml
<persistence-unit name="persistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
evet sadece jpa lehçesinin ayarlanması emf.setJpaDialect (yeni HibernateJpaDialect()); ' –