2010-04-07 4 views
1

런타임에 표시되지 않는 주석을 포함하는 Java 클래스 파일을 사용할 수 있습니까?컴파일 타임에 주석이 있지만 런타임에는 없음

예 : JPA @Embeddable 주석을 사용하여 클래스를 작성하고 싶습니다.이 클래스는 컴파일 할 때 제공됩니다 (제공되는 범위 : "제공됨"). 그러나 클래스가 JPA 응용 프로그램 외부에서 사용되는 경우 주석 정의는 런타임시 부재 할 수 있습니다.

답변

0

당신도 할 것이다 :

  1. 스왑 컴파일 된 클래스가 런타임에 (. 주석없이 클래스를 포함) @Embeddable의 클래스 정의
  2. 재정의 및 @Retention (RUNTIME)를 제거
  3. JPA 제공자가 클래스 자체를 검사하지 못하게하십시오.
+0

JPA 애플리케이션 외부에서 클래스를 사용하는 경우 3. 항상 충족됩니다. 맞습니까? – deamon

0

OSGi 애플리케이션 (예 : Eclipse)은 액세스 할 수없는 주석을 무시합니다. 즉, JPA API가로드되지 않은 상태에서 JPA 주석이있는 경우 ClassNotFoundExceptions를 얻지 못합니다.

0

이 특별한 문제에 대해서는 주석 대신 XML 리소스에서 ORM 매핑을 정의하기 만하면됩니다. 이 맵핑은 JPA 사용 여부에 따라 클래스 경로에 추가되거나 추가되지 않는 다른 아티팩트 (JAR)에 넣을 수 있습니다.

관련 문제