Проблема трудно объяснить, поэтому, пожалуйста, взгляните на проект: https://github.com/darzz/boot_bug Это минимальная настройка, которая воспроизводит ошибку.Spring Boot * .hbm.xml файлы сопоставления, не загруженные в тест
Описание: Стек приложения - весенняя загрузка с данными весны и весной. Существует testNamedQuery.hbm.xml файл под src/main/resources/queries.
При работе с Применение класса пакетное задание заканчивается успешно, без каких-либо исключений в журналах. Однако, при работе с ApplicationNotWorking класса, который является точной копией, просто положить в тест корня источника, пакетное задание не удается:
Caused by: org.hibernate.MappingException: Named query not known: findPersonNames
at org.hibernate.internal.AbstractSessionImpl.getNamedQuery(AbstractSessionImpl.java:177) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
at org.springframework.batch.item.database.HibernateItemReaderHelper.createQuery(HibernateItemReaderHelper.java:146) ~[spring-batch-infrastructure-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.batch.item.database.HibernateItemReaderHelper.getForwardOnlyCursor(HibernateItemReaderHelper.java:123) ~[spring-batch-infrastructure-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.batch.item.database.HibernateCursorItemReader.doOpen(HibernateCursorItemReader.java:185) ~[spring-batch-infrastructure-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.open(AbstractItemCountingItemStreamItemReader.java:144) ~[spring-batch-infrastructure-3.0.5.RELEASE.jar:3.0.5.RELEASE]
... 39 common frames omitted
Так выглядит, что при выполнении тестов, * .hbm .xml файлы не загружаются! После исследования и отладки, я думаю, я мог бы найти причину - константа единичного корневого url установлена для тестов целевых/тестовых классов, но файлы сопоставления находятся в/target/classes.
Возможная причина на мой взгляд, может быть похожа на то, что описано здесь http://blog.carbonfive.com/2007/05/17/using-classpath-vs-classpath-when-loading-spring-resources/
Но я понятия не имею, как решить эту проблему в Spring ботинке, не создавая persistence.xml конфигурацию только для целей тестирования. Не хотите копировать * .hbm.xml файлы из основного/ресурса для тестирования/ресурсов.
У кого-нибудь есть идеи?
Привет, спасибо за ответ. Я создал минимальный проект, который воспроизводит проблему и помещает ее в github - пожалуйста, посмотрите (исходный вопрос был отредактирован). Для меня это какой-то странный материал, но я только начал свое путешествие с весенним ботинком ... – darzz
Вы делаете Restful обслуживание? вам нужно использовать тестирование интеграции для загрузки Spring. Несмотря на создание класса springbootapplication для тестирования; вам нужно создать тестовый класс, используя @RunWith (SpringJUnit4ClassRunner.class) & @SpringApplicationConfiguration (classes = AppMain.class) –
Нет, просто весеннее пакетное приложение, чтобы завершить тесты с локальной базой данных, но файлы * .hbm.xml не загружаются, даже если я использую то, что вы предложили. – darzz