2016-11-05 3 views
0

@Entity 클래스의 클래스 경로 스캐닝 시도가 스프링 부트 애플리케이션에서 실패했습니다. 내가 웹에서 발견 된 가장 일반적인 솔루션은이 있었고 그것은 작동하지 않았다 - @Configuration 클래스에스프링 부트에서 @Entity 클래스에 대한 클래스 경로 스캐닝을 활성화하는 방법

LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean(); 
factory.setJpaVendorAdapter(vendorAdapter); 
factory.setPackagesToScan("com.acme.domain"); 

@EntityScan 중 하나가 작동하지 않았다.

모든 엔티티와 해당 매핑이 orm.xml에 나열되어 있으며 @Entity 주석을 사용하여 다시 이동해야했습니다. 나에게 절반 방법을 가지고

하나 개의 솔루션이 있었다 - 나는의 persistence.xml에서 엔티티 클래스를 나열하는 경우

<persistence-unit> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <mapping-file>META-INF/orm.xml</mapping-file> 
    <class>com.acme.domain.Entity</class> 
    <shared-cache-mode>NONE</shared-cache-mode> 
</persistence-unit> 

이 방법 나는 @Entity 주석을 사용할 수 있습니다.

ClasspathScanningPersistenceUnitPostProcessor postProcessor = new ClasspathScanningPersistenceUnitPostProcessor("com.acme.domain"); 
entityManagerFactory.setPersistenceUnitPostProcessors(postProcessor); 

지금 @Entity 클래스의 클래스 패스 스캐닝이 활성화되어 -

답변

0

Spring Data JPA web page에 상장되어있는, 검색하는 동안 나는 찾지 못했습니다 해결책은 이것이다. orm.xml에는 매핑이없고 persistence.xml에는 엔티티 목록이 없습니다.

0

코드를 공유하면 문제를 해결하는 데 도움이됩니다. 공유 할 수있는 github 프로젝트가 있습니까?

명심해야 할 점은 SpringBoot는 모든 것에 "접근"된 접근 방식을 취합니다. 즉, JPA의 경우 "부팅"방법이 있습니다. Spring Tool Suite는 여러분의 친구입니다.

부팅시 JPA를 수행하는 방법을 보여주는 tutorial을 확인하는 것이 좋습니다. 또한 부팅 할 때 Spring Initializer 프로젝트에서 maven 프로젝트 설정을 시작하는 것이 좋습니다.

관련 문제