Q타입이 순환 의존을 가질 경우, 멀티 쓰레드 환경에서 Q타입을 초기화하면 데드락이 발생할 수 있다.
이에 대한 가장 쉬운 해결책은 멀티쓰레드 환경에서 사용되기 전에 단일 쓰레드에서 클래스를 초기화하는 것이다.
이런 목적으로 com.mysema.util.ClassPathUtils 클래스를 사용할 수 있다.
ClassPathUtils.scanPackage(Thread.currentThread().getContextClassLoader(), packageToLoad);
packageToLoad를 실제 초기화하길 원하는 클래스의 패키지로 바꾸면 된다.