'CompilingClassLoader'가있는 라이브러리를 사용하는 웹 응용 프로그램을 가지고 있고 (누군가 편집 한 코드로 인해) 다시로드 할 때마다 새 클래스 로더가 만들어집니다. 그렇게되면, 하이버 네이트 플러그인에 다음 코드 나는hibernate 5 및 JPA와 엔티티 클래스 로더 동적 설정
@Singleton
@Provides
public EntityManagerFactory providesSessionFactory() throws IOException {
log.info("Loading Hibernate. ENTITY classloader="+entityClassLoader+" hibernate classloader="+this.getClass().getClassLoader());
Map<String, Object> properties = new HashMap<>();
properties.put("hibernate.classLoader.application", entityClassLoader);
EntityManagerFactory factory = Persistence.createEntityManagerFactory(persistenceUnit, properties);
log.info("Done loading Hibernate");
return factory;
}
나는 "hibernate.classLoader.application"를 생각하기 때문에 문제가 발생 대신의 목적을 패배하는 (의 persistence.xml에 정의되어 있어야 실행 쓰고 있어요 개발자가 코드를 변경할 때마다 필자가 필요로하는 것).
기본적으로 우리는 CompilingClassLoader가 계속 변경되는 방식을 사용합니다 (너무 빠르기 때문에 실제로 작동합니다). 그러나 지금은 최대 절전 모드에서이를 수행하는 방법을 알 수 없습니다. 어떻게 든 ThreadLocal 또는 Thread.current.setContextClassLoader()에서 설정하는 방법이 있나요?
덕분에, 딘