После долгих исследований и тестов я прошу сообщество оказать некоторую помощь:
Контекст
Приложение «V2»
MySQL 55
Mysql: 5.1.29
Hibernate: 4.2.5.Final
- Application context.xml определяет DAO (+ Services, Controller, ..)
- Модели, помеченные @Entity и загруженные, я думаю, org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor?В контексте приложения?
Приложение «V3»
MySQL 57, но работает на 55
MySql: 5.1.46
Hibernate: 5.2.17.Final - Spring Boot - объект и репозиторий с аннотациями
Приложение для миграции
должно знать модель v2 иподключиться к v2 BDD
должен знать модель v3 и подключиться к v3 BDD
имеет несколько таблиц самостоятельно
=> Работает с Spring Boot, аннотации
3 Созданы источники данных, каждый из которых подключен к своему BDD
Сервисы используют @Qualifier для загрузки хорошего @ репозитория
Для app, v2, v3 (в разных пакетах) была создана простая модель
=> все отлично работает
Интеграция
Интеграция модели V2 и модели V3 в приложение Migration.
- создание jar v3 -> импортировано через Maven -> сканирование пакетов в @ConfigurationНО экземпляр @Repository не создается
Сейчас я копирую вставленные модели и репозитории в пакет миграции приложения, который сканируется источником данных и работает как простая модель.
- создание v2 jar -> импортированного через Maven -> создание класса @Configuration, который загружает приложение context.xml
Этот файл является локальным для приложения миграции (а не для внешнего jar)и опишите DAO (во внешний jar) для загрузки.
Приложение миграции хорошо запускается
Проблема
НО, когда мы вызываем v2 DAO для метода (v2DAO.find)=> ОШИБКА ) Ошибка:
Причина: org.hibernate.UnknownEntityTypeException: Невозможно найти персистент: com.company.model.MyModel
MyModel - @Entity во внешнюю банку
Вопросы
Кажется
существует проблема между DAO и моделью
или модель не загружена
или источник данных не связан с моделью
или DAO не загружен, как следует
Кстати, я нене возникает конфликт для сущностей при запуске, что странно.Разве у нас не должно быть «ошибок дублирующихся объектов»?
Есть ли проблема с версией hibernate / mysql?
Возможно ли загрузить объекты из внешнего JAR с помощью Spring Boot?(аннотация или файл контекста приложения?)
Есть идеи?вести?отражение?совет?
Я пытался до сих пор:
- определить в persistence.xml все DAO в
=> (у меня былоизменить @Entity, потому что duplicate (доказательство того, что он хорошо загружен) -> ame error (Невозможно найти persister)
Обратный инжиниринг с помощью инструмента JBoss, генерация сущностей (но даже проверка Generate EJB3 Annotation: У меня нет аннотаций к моим сущностям, и они не работают
Создание собственного @ репозитория при переносе приложения -> не очень хорошо
копирование hbm.xml, сгенерированного с помощью обратного инжиниринга -> не очень хорошо