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?
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).
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")
c'est ce qui a fonctionné pour moi :
@EnableJpaRepositories(basePackages ={ "package1","package2"})
@EntityScan(basePackages ={ "package3","package4"})
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.*"})