복붙노트

[SPRING] 최대 절전 모드 - 항아리 내에서 스캔되지 않은 스프링 주석 처리 된 엔티티

SPRING

최대 절전 모드 - 항아리 내에서 스캔되지 않은 스프링 주석 처리 된 엔티티

내 웹 프로젝트로 가져온 주석이 달린 엔티티 클래스가 포함 된 패키지가 있습니다. Tomcat이 프로젝트를 배포 할 때 jar에있는 엔티티 클래스는 주석을 스캔하지 않습니다. jar 파일 내부에 주석이 달린 클래스를 검색하도록 Spring에 지시하는 방법이 있습니까? 즉 :

<context:component-scan base-package="{path to jar or something}"/>

해결법

  1. ==============================

    1.@Entity 주석이있는 클래스를 의미하는 경우 은 아무 관련이 없습니다. @Entity 클래스는 Hibernate에 의해 발견되므로 Spring이 아닌 Hibernate를 설정해야한다.

    @Entity 주석이있는 클래스를 의미하는 경우 은 아무 관련이 없습니다. @Entity 클래스는 Hibernate에 의해 발견되므로 Spring이 아닌 Hibernate를 설정해야한다.

    JPA를 통해 Hibernate를 사용할 경우 (persistence.xml이있는 경우) 엔티티 클래스에 대해 /WEB-INF/lib/yourFileWithEntities.jar를 스캔하려면 persistence.xml에 다음 줄을 추가해야합니다.

    <jar-file>lib/yourFileWithEntities.jar</jar-file>
    
  2. ==============================

    2.찾다: http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.html

    찾다: http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.html

    두 번째 예 :

         

    두 개의 와일드 카드를 뒤집어 모든 하위 패키지를 검사하십시오. (예 : "test.package. **")

  3. ==============================

    3.spring3.1을 사용하거나 com. ***. *** 태그를 사용하여 persistence.xml에 엔티티 클래스를 추가하십시오.

    spring3.1을 사용하거나 com. ***. *** 태그를 사용하여 persistence.xml에 엔티티 클래스를 추가하십시오.

  4. from https://stackoverflow.com/questions/3980582/hibernate-spring-annotated-entities-not-scanned-from-within-jar by cc-by-sa and MIT license