Объекты JPA в запутанном банке не найдены / загружены Hibernate - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть приложение Spring Boot, в котором сущность JPA A имеет отношение к сущности B, включенной в запутанный jar.

Я получаю общее "@OneToOne или @ManyToOne в ссылках Aнеизвестная сущность: ошибка "B" при инициализации Hibernate.

Ошибка строго возникает, когда я запутываю банку с помощью Proguard.

В моей конфигурации Proguard я уже использую это для сохранения всей персистентностианнотированные классы и аннотации времени выполнения:

-keepattributes RuntimeVisibleAnnotations
-keep @javax.persistence.* class * {
   *;
}

Если я декомпилирую код, я вижу, что аннотации JPA есть, но объект все еще не найден.

Я также попытался сохранитьвся сущность с этим:

-keep class B

Но ошибка сохраняется.Я не знаю, что еще изменяет Proguard в банке, что мешает Hibernate найти сущность.

Кстати, в Spring Boot я использую @EntityScan с явным именем пакета.


ОБНОВЛЕНИЕ С РЕШЕНИЕМ

Решение было добавить:

-keepdirectories 

Записи каталога по умолчанию удаляются в процессе запутывания, чтобы уменьшить размер выходного фляги,Без каталогов Spring Boot не смог найти объекты, настроенные с помощью сканирования пути.

Похожая проблема была получена здесь: ProGuard: не работает запутанный файл jar, но работает не запутанный файл jar

...