Използвам mybatis 3.0.4 за тест срещу mysql 5.5 база данни с mysql-connector JDBC драйвер, версия 5.1.16.
Проблемът, който изпитвам, е, че ако получа SqlSession чрез метода openSession() и извлека данни чрез избор от базата данни, следващите селекти в същата сесия не са наясно с промените, направени (и ангажирани) в базата данни, дори ако извикам clearCache( ) на сесията. За едновременно модифициране на база данни използвам Mysql клиент за команден ред. Задаването на cacheEnabled като false в конфигурационния файл също не помага.
Прилагам конфигурационен файл.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
<settings>
<setting name="lazyLoadingEnabled" value="false"/>
<setting name="cacheEnabled" value="false"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="poolMaximumIdleConnections" value="20"></property>
<property name="poolMaximumActiveConnections" value="80"></property>
<property name="poolMaximumCheckoutTime" value="600"></property>
<property name="poolTimeToWait" value="600"></property>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/testdb"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mappers/TestMapper.xml" />
</mappers>
</configuration>
code
getSessionFactory().openSession(TransactionIsolationLevel.READ_COMMITTED);code
- person lucabu   schedule 06.02.2012