Мой тест пытается показать, что оператор SQL, отправленный через исходящую конечную точку Mule JDBC, выполняется успешно.Проблема: после вставки через Mule, запрос к той же таблице не возвращает результатов.
Я использую Spring JDBC для проверки результатов этого оператора.
В моем методе настройки я создаю схемус помощью инструкции DDL, отправленной через Spring JDBC:
final JdbcTemplate _jdbcTemplate = new JdbcTemplate(new
SimpleDriverDataSource(new JDBCDriver(), "jdbc:hsqldb:mem:mydb"));
Выходной соединитель Mule JDBC также настроен для указания на jdbc: hsqldb: mem: mydb
<spring:bean id="myDataSource" class="org.enhydra.jdbc.standard.StandardDataSource" destroy-method="shutdown">
<spring:property name="driverName" value="org.hsqldb.jdbc.JDBCDriver"/>
<spring:property name="url" value="jdbc:hsqldb:mem:mydb"/>
</spring:bean>
<jdbc:connector name="insertionConnector" dataSource-ref="myDataSource">
<jdbc:query key="insertion"
value="INSERT INTO mytable (TEST_KEY) VALUES (#[map-payload:_testkey])"/>
</jdbc:connector>
<custom-transformer name="objectFieldsToMap" class="com.mydomain.ObjectFieldsToMap"/>
<flow name="sendInsertion">
<vm:inbound-endpoint address="vm://insert"/>
<jdbc:outbound-endpoint queryKey="insertion" transformer-refs="objectFieldsToMap" connector-ref="insertionConnector"/>
</flow>
Я подтвердил, что при вставке тестастроки и запросы для него с помощью Spring JDBC работают в обоих направлениях.
Я проверил, что отправка одного и того же оператора вставки через исходящую конечную точку возвращает 1 обновленную строку.
final MuleClient muleClient = MyFactory.muleClient();
final Date date = new Date();
final MyObject myObject = new MyObject.Builder().setTestKey("test").build();
muleClient.dispatch("vm://insert", myObject, null);
Однако, когда я запрашиваюВ той же таблице, использующей Spring JDBC, я получаю пустой набор результатов.
(String) _jdbcTemplate.queryForObject("SELECT TEST_KEY FROM MYDB.mytable", Class.forName("java.lang.String"));
Внутренне Mule (используя Apache DbUtils) фиксируется после выполнения оператора, поэтому вставка должна быть видимой для последующих запросов.Я использую тот же объект JdbcTemplate, который использовался для создания схемы и последующего запроса результатов.
Помощь приветствуется.Спасибо.