[SPRING] PackagesToScan을 검사하는 동안 일부 클래스를 무시하십시오.
SPRINGPackagesToScan을 검사하는 동안 일부 클래스를 무시하십시오.
@Entity로 주석을 달기를 원하는 클래스를 포함하는 패키지 (packagesToScan)가 있습니다.
ApplicationContext 설정을 정의하는 동안 나는 다음과 같이했다.
@Configuration @EnableJpaRepositories ( "packagesToScan") @EnableTransactionManagement @PropertySource ( "server / jdbc.properties") @ComponentScan ( "packagesToScan")
공용 클래스 JpaContext {
... // 기타 구성 ....
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(this.dataSource());
emf.setJpaVendorAdapter(this.jpaVendorAdapter());
emf.setPackagesToScan("packagesToScan");
emf.setJpaProperties(this.hibernateProperties());
return emf;
}
해결법
-
==============================
1.나는 같은 문제를 해결하기 위해 노력 해왔고 마침내 아래와 같은 해결책을 얻었습니다.
나는 같은 문제를 해결하기 위해 노력 해왔고 마침내 아래와 같은 해결책을 얻었습니다.
<bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="myDataSource"/> <property name="packagesToScan" value="com.mycompany.bean"/> <property name="entityTypeFilters" ref="packagesToScanIncludeRegexPattern"> </property> <property name="hibernateProperties"> // ... </property> </bean> <bean id="packagesToScanIncludeRegexPattern" class="org.springframework.core.type.filter.RegexPatternTypeFilter" > <constructor-arg index="0" value="^(?!com.mycompany.bean.Test).*"/> </bean>
내가 포함 할 클래스를 필터링하는 데 사용할 수있는 LocalSessionFactoryBean 클래스에 setEntityTypeFilters 함수가 있음을 알았습니다. 이 예제에서는 RegexPatternTypeFilter를 사용했지만 다른 유형의 필터도 있습니다.
또한 필터는 include 의미론과 함께 작동합니다. 의미를 배제하기 위해 변환하려면 정규 표현식에서 부정적인 미리보기를 사용해야했습니다.
이 예제는 xml 구성을 보여 주지만 java 기반 구성으로 변환하는 것은 간단합니다.
-
==============================
2.나는 비슷한 문제를 발견했다. 패키지에서 모든 엔티티가 아닌 일부 엔티티를 추가해야했습니다. 여기 내가 어떻게 그랬는가 :
나는 비슷한 문제를 발견했다. 패키지에서 모든 엔티티가 아닌 일부 엔티티를 추가해야했습니다. 여기 내가 어떻게 그랬는가 :
// add all entities from some package localContainerEntityManagerFactoryBean.setPackagesToScan("com.companyname.model"); // add only required enitites from a libray localContainerEntityManagerFactoryBean.setPersistenceUnitPostProcessors(new PersistenceUnitPostProcessor() { @Override public void postProcessPersistenceUnitInfo(MutablePersistenceUnitInfo persistenceUnit) { persistenceUnit.addManagedClassName("com.companyname.common.model.SomeEntityName"); } });
from https://stackoverflow.com/questions/16293437/ignore-some-classes-while-scanning-packagestoscan by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring의 예약 된 프로세스에 대해 시스템 사용자를 인증하려면 어떻게해야합니까? (0) | 2019.05.06 |
---|---|
[SPRING] Fileupload가 Primefaces에서 작동하지 않습니다. (0) | 2019.05.06 |
[SPRING] Spring JDBC batchUpdate를 사용할 때 생성 된 키를 가져 오는 방법이 있습니까? (0) | 2019.05.06 |
[SPRING] Bean에 대한 액세스를 해결하기 위해 컨텍스트에 등록 된 Bean 확인자가 없습니다. (0) | 2019.05.06 |
[SPRING] Spring MVC, 컨트롤러 내부에서 다른 컨트롤러 호출하기 (0) | 2019.05.06 |