Операция SqlMapClient; плохая грамматика SQL: таблица не найдена
Я использую Ibator для генерации материалов Ibatis, поэтому все артефакты генерируются автоматически. Я пытаюсь сделать простую вставку, которая дает исключение "таблица не найдена", хотя таблица существует ", и я могу запросить ее из консоли.
Вот ошибка
org.springframework.jdbc.BadSqlGrammarException: SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- Ошибка произошла в com / sqlmaps / MY_TABLE_NAME_SqlMap.xml.
--- Ошибка произошла при применении карты параметров.
--- Проверьте ## MY_TABLE_NAME.insert-InlineParameterMap.
--- Проверьте заявление (обновление не удалось).
--- Причина: java.sql.SQLException: ошибка SQL Anywhere -141: таблица '#MY_TABLE_NAME' не найдена
Файл SQL MAP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="##MY_TABLE_NAME">
<insert id="insert" parameterClass="com.model.MyTable">
<!--
WARNING - @ibatorgenerated
This element is automatically generated by Apache iBATIS Ibator, do not modify.
This element was generated on Mon Jul 06 19:54:34 IST 2015.
-->
insert into ##MY_TABLE_NAME (field1, field2, field3, field4)
values (#field1:tinyint#, #field2:DATE#, #field3:INT#, #field4:BIGINT#)
</insert>
</sqlMap>
Внутри Ibator config я определил свойство таблицы
<property name="runtimeTableName" value="##MY_TABLE_NAME" />
1 ответ
Я добавил ниже код в log4j.xml, чтобы проверить, какой запрос он генерирует
<logger name="java.sql" additivity="false">
<level value="debug" />
<appender-ref ref="CONSOLE" />
и я обнаружил, что это генерирует неправильное имя таблицы, это был префикс имени таблицы с #symbol, что было неправильно в ibatorConfig.xml