Я создал таблицу:
CREATE TABLE IF NOT EXISTS `tablename` (
..
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Затем я запускаю запрос через myBatis (как определено в маппере. xml -файл):
SELECT .. FROM `tablename`;
Этот запрос завершается с
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'databasename.TABLENAME' doesn't exist
Как заставить myBatis выполнять запрос с указанным строчным именем "tablename" вместо выполнения перевода в верхнем регистре?
Я нашел это: https://mybatis.org/generator/configreference/table.html где сказано, что myBatis получает информацию о том, как обращаться с чувствительностью к регистру, из самой базы данных. Поэтому я проверил
SHOW VARIABLES;
настройки и получил:
lower_case_file_system OFF
lower_case_table_names 0
Это означает, что если я правильно понимаю https://mariadb.com/kb/en/identifier-case-sensitivity/, то база данных указывает, что имена таблиц чувствительны к регистру. Почему myBatis затем заставляет вводить строчные имена в верхний регистр перед отправкой запроса?
Заранее спасибо.