Mapper конфликтует с самим собой?
У меня появляется сообщение при попытке запустить сервер JBoss с приложением с двумя сопоставителями myBatis
XML fragments parsed from previous mappers already contains value for workSql
Забавный момент заключается в том, что элемент sql workSql находится в одном только маппере. И существует только один раз. Я тоже это проверил поиском по файлам.
Аналогичная проблема, в MyBatis: Ошибки при обновлении до 3.2.7 с 3.0.3, про сообщение
Mapped Statements collection already contains value for com.foo.FooDao.java
отличается, поскольку речь идет не об элементе sql, а обо всем картографе MyBatis, на который ссылаются в контексте Spring. И квитанция на это не подойдет и для моего случая - у моих картографов уже есть пространства имен, и они не помогут.
1 ответ
Похоже, что если картографы точно не названы, MyBatis в некоторых ситуациях пытается прочитать их более одного раза, и они конфликтуют сами с собой.
Квитанция должна была установить все мапперы в файле configuration.xml:
<mappers>
<mapper resource="amcssz/spr/srv/main/batis/ReportsMapper.xml"/>
<mapper resource="amcssz/spr/srv/main/batis/SprMapper.xml"/>
</mappers>
Все конфликты исчезли.