web-dev-qa-db-fra.com

Spring Boot w/JPA: déplacez @Entity vers un autre package

Mes premiers pas avec Spring-Boot avec JPA me posent problème. J'ai commencé avec un exemple assez minimaliste de Git utilisant Gradle. 

En déplaçant simplement Customer dans un autre paquet, disons que hello2 génère une exception Caused by: Java.lang.IllegalArgumentException: Not an managed type: class hello2.Customer. J'ai essayé d'ajouter 

@ComponentScan(basePackageClasses= {Customer.class}) // AND OR @EnableJpaRepositories(basePackageClasses= {Customer.class})

à Application, mais sans succès. 

Qu'est-ce que je fais mal?

28
Stefan K.

L'emplacement des entités dans Spring Boot peut être configuré à l'aide de @EntityScan .

Par défaut, @EnableAutoConfiguration active l'analyse des entités dans le package où elle est placée (si ce n'est pas un package par défaut).

39
axtavt

Vous devez localiser les entités et les pakages de référentiels en utilisant

@EnableJpaRepositories(basePackages = "your.repositories.pakage")

@EntityScan(basePackages = "your.entities.pakage")
30
tranductrinh

c'est ce qui a fonctionné pour moi : 

@EnableJpaRepositories(basePackages ={ "package1","package2"})
@EntityScan(basePackages ={ "package3","package4"})
6
bhaskar babu

Donner le même emplacement de package (package de base) pour l'annotation ci-dessous a fonctionné pour moi: -

@SpringBootApplication(scanBasePackages = {"org.ashu.Java.*"})
@EnableJpaRepositories(basePackages ={ "org.ashu.Java.*"})    
@EntityScan(basePackages ={ "org.ashu.Java.*"})
0
ashu17188