2012-10-29 3 views
0

하나의 DBMS에서 다른 DBMS로 큰 데이터베이스를 변환하고 있습니다. 우리는 대부분이 용도로 JDBC를 사용하지만 일부 Hibernate 호출이 혼합되어 있습니다. 지금까지는 데이터베이스의 일부가 마이그레이션하는 데 7 시간이 걸렸습니다. 이를 완화하기 위해 데이터베이스의 여러 부분을 동시에 마이그레이션 할 수 있다고 결정했습니다. 스레드를 사용하기 위해 이전 루틴을 다시 작성했습니다. Java 힙 공간 문제를 처리하고 각 스레드에서 JDBC와 Hibernate 세션을 분리했는지 확인한 후 마지막 문제가 있음을 알았습니다. 우리는 알 수없는 엔티티를 얻고 있습니다 : 예외는 어디에서나 발생합니다. 마이그레이션 스레드가 시작되기 전에 SchemaExport를 작성하고 실행합니다. 우리는 무엇을 놓치고 있습니까?멀티 쓰레딩 최대 절전 모드에서 알 수없는 엔티티

+4

당신이 그 예외의 전체 스택 추적을 게시 할 수 : hibernate.cfg.xml, 이것은 최대 절전 모드 클래스 Myclass에 대해 알려 줄은? –

+0

우리는 우리 자신의 문제를 해결했습니다. 우리는 스키마 내보내기를 작성한 첫 번째 부분에서 세션을 작성하지 않았습니다. 일단 우리가 그렇게하면, 그 밖의 모든 것들은 줄에 떨어졌습니다. –

답변

1

분명히, Unknown entity는 hibernate가 예외에서 참조 된 클래스에 대해 알지 못할 때 발생하는 예외이다. 예를 들어, Myclass 클래스 :

당신은 최대 절전 모드로 알고 있어야 각 클래스에 대한 위해, 최대 절전 모드 매핑에 해당하는 <classname>.hbm.xml 파일을 가질 필요하고, 또한 이러한 파일을 자원으로 언급 한
Exception in thread "main" org.hibernate.MappingException: Unknown entity: data.Myclass 

최대 절전 모드의 주요 구성 파일에 있습니다.

<mapping resource="Myclass.hbm.xml" /> 
관련 문제