2016-01-28 4 views
0

Обычно мы определяем наши запросы в файлах XML, и mappers часть нашего MyBatis XML конфигурации выглядит следующим образом:Почему этот неправильный тег «package» в MyBatis XML config работает?

<mappers> 
    <mapper resource="mappers/example1.xml"/> 
    <mapper resource="mappers/example2.xml"/> 
</mappers> 

и все просто отлично.

Теперь вкладчик добавлены некоторых картографов как классы Java, а мы имеем смешанную конфигурацию, в которой оба XML-файлы и Java пакеты перечислены в mappers:

<mappers> 
    <mapper resource="mappers/example1.xml"/> 
    <mapper resource="mappers/example2.xml"/> 
    <package name="it.example.mappers1" /> 
    <package name="it.example.mappers2" /> 
</mappers> 

Я вижу, что определение типа документа http://ibatis.apache.org/dtd/ibatis-3-config.dtd не включает package как правильное содержание для mappers, и поэтому я сообщил затмение, что дает мне эту ошибку:

The content of element type "mappers" must match "(mapper)+"

Однако, все еще работает отлично когда я запускаю приложение. С другой стороны, когда я пытаюсь удалить неправильные package элементов, MyBatis не знает, где найти картограф, и я получаю эту ошибку во время выполнения:

org.apache.ibatis.binding.BindingException: Type interface it.example.mappers1.MyMapper is not known to the MapperRegistry

Таким образом, мы имеем неправильную конфигурацию, которая работает, и необходимо , Зачем? Я указываю неправильный DTD?

ответ

0

Я действительно определил старый DTD для ibatis. Если я заменил правильный http://mybatis.org/dtd/mybatis-3-config.dtd, все будет проверяться и работать. Достаточно глупым

 Смежные вопросы

  • Нет связанных вопросов^_^