Я обновляю столбец CLOB в своей базе данных Oracle. Параметризованный SQL выглядит так, как будто он выполняется правильно без ошибок, но когда я запускаю выбор, чтобы увидеть изменение, он не был обновлен. Примечание. MyBatis 3 построен с использованием параметризованных запросов JDBC, поэтому эти правила также применимы.
Отображение MyBatis:
<update id="updateRSA103RequestData" parameterType="com.company.domain.RSA103XMLData" flushCache="true">
update
RSA_SUBMIT_DATA
set TXLIFE_REQUEST = #{request}
where RSA_SUBMIT_QUEUE_ID = #{id}
</update>
Журналы выполнения:
2012-07-13 12:35:26,728 DEBUG Connection:Thread main: - ooo
Connection Opened 2012-07-13 12:35:26,837 DEBUG
PreparedStatement:Thread main: - ==> Выполнение: update< br> RSA_SUBMIT_DATA установить TXLIFE_REQUEST = ? где RSA_SUBMIT_QUEUE_ID = ?
13-07-2012 12:35:26,837 DEBUG PreparedStatement:Thread main: - ==>
Параметры: testasdfasdf(String), 51(Integer) 13-07-2012 12:35: 27 024
DEBUG Connection:Thread main: - xxx Connection Closed
Выберите запрос после изменения:
select *
from RSA_SUBMIT_DATA
where RSA_SUBMIT_QUEUE_ID = 51
RSA_SUBMIT_QUEUE_ID | TXLIFE_REQUEST | TXLIFE_RESPONSE
51 | originalString | resultString
Вызов картографа:
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
log.debug("autoCommit: " + sqlSessionFactory.getConfiguration().getEnvironment().getDataSource().getConnection().getAutoCommit());
PolicyTransactionMapper policyTransactionDAO = sqlSession
.getMapper(PolicyTransactionMapper.class);
RSA103XMLData xmlData = new RSA103XMLData();
xmlData.setId(rsaSubmitQueueID);
xmlData.setRequest(request);
policyTransactionDAO.updateRSA103RequestData(xmlData);
Любая помощь приветствуется.