При переносе объекта в другой пакет возникает ошибка «Нет управляемого типа»?

Есть приложение spring + jpaRepositories.

Итак, PersistenceConfig:

@Configuration
@EnableTransactionManagement
@EnableJpaAuditing
@EnableJpaRepositories(basePackages = {"persistence"})
@PropertySource("classpath:application-${envConfig}.properties")
@ComponentScan(basePackages = {"persistence"})
public class PersistenceConfig {
...
}

Вот такое дерево каталогов:

web
models
      User.java
persistence
      PersistenceConfig.java
      UserRepository.javav
services

если найти Entities в модели - все в порядке. Если найти сущности в постоянстве - появляется сообщение об ошибке

Caused by: java.lang.IllegalArgumentException: Not a managed type: class persistence.User

@Entity
@Audited
@Table(name = "User"})})
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@Getter
@Setter
public class User {
@Id
private int id;
private String name;
}
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны добавить пакет models в ComponentScan.

@ComponentScan(basePackages = {"persistence" , "models"})

Проблема существует только при переходе от модели к настойчивости. Итак, модель - пакет видеть некорректно. Проверил - ошибка все та же

Roberto 09.11.2018 11:50

Последнее полученное вами исключение фактически указывает на проблему с настройкой JPA. «Не управляемый компонент» означает, что поставщик JPA не знает такого типа. Если вы настраиваете приложение JPA на основе Spring, я бы рекомендовал настроить свойство «packagesToScan» в LocalContainerEntityManagerFactory, который вы настроили для пакета, содержащего ваши объекты JPA. В качестве альтернативы вы можете перечислить все свои классы сущностей в {persistence} .xml, но это обычно более громоздко.

Moodi 09.11.2018 12:52

Я обнаружил, что preconfig для jpa содержится в строке application.properties db.entitymanager.packages.to.scan

Roberto 12.11.2018 08:54

Другие вопросы по теме