Ich habe Probleme mit meinen ersten Schritten beim Spring-Boot mit JPA. Ich habe mit einem ziemlich minimalistischen Beispiel von Git mit Gradle angefangen.
Verschieben Sie nun einfach Customer
in ein anderes Paket. Angenommen, hello2
führt zu einer Ausnahme Caused by: Java.lang.IllegalArgumentException: Not an managed type: class hello2.Customer
. Ich habe versucht hinzuzufügen
@ComponentScan(basePackageClasses= {Customer.class}) // AND OR
@EnableJpaRepositories(basePackageClasses= {Customer.class})
zu Application
, aber ohne Erfolg.
Was mache ich falsch?
Die Position der Entitäten in Spring Boot kann mit @EntityScan
konfiguriert werden.
Standardmäßig aktiviert @EnableAutoConfiguration
das Entitäts-Scanning in dem Paket, in dem es platziert wurde (wenn es kein Standardpaket ist).
Sie müssen Entitäten und Repository-Pakete mit suchen
@EnableJpaRepositories(basePackages = "your.repositories.pakage")
@EntityScan(basePackages = "your.entities.pakage")
das hat bei mir funktioniert:
@EnableJpaRepositories(basePackages ={ "package1","package2"})
@EntityScan(basePackages ={ "package3","package4"})
Wenn derselbe Paketstandort (d. H. Basispaket) für unten stehende Anmerkungen angegeben wurde, funktionierte für mich Folgendes:
@SpringBootApplication(scanBasePackages = {"org.ashu.Java.*"})
@EnableJpaRepositories(basePackages ={ "org.ashu.Java.*"})
@EntityScan(basePackages ={ "org.ashu.Java.*"})