문제

그것은 포함하는 최대 절전 모드 매핑 hbm.xml 의 항아리와 방지 매뉴얼에 참조 applicationContext.xml 아

  <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
      <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">
          org.hibernate.dialect.MySQLDialect
        </prop>
      </props>
    </property>
    <property name="mappingResources">
      <list>
        <value>
          com/…/domain/Question.hbm.xml

지하 jar/etc.?
Nhibernate 는 이러한 옵션을하는 포인트는 어셈블리,위치에서 선택 ups hbm 습니다.
주석은 옵션이 아닙

편집: 편집:나의 기도가 제거하는 설명서를 참조하 hbm 의 포인트는 일반적인 위치에서는 최대 절전 모드를 선택할 수 있습니

  <list>
    <value>
      com/.../Question.hbm.xml
    </value>
    <value>com/.../Users.hbm.xml</value>
    <value>
      com/.../Answers.hbm.xml
    </value>
도움이 되었습니까?

해결책

을 명확히 하기 위해,뿐만 아니라:당신은 특별히 이야기에 대해 봄,최대 절전 모드를 함께 이후인 구성을 보여주는 봄의 구성의 최대 절전 모드.봄의 LocalSessionFactoryBean 지의 무리는 다른 방법을 설정하는 위치의 당신의 최대 절전 모드 매핑 파일당신만을 사용하여 mappingResources 매개 변수가 있지만,또한 mappingLocations, mappingJarLocations, 고 mappingDirectoryLocations.

나는 생각에 대한 예할 수 있습 사용 mappingDirectoryLocations 단지 그것을 지적하여 특정 디렉토리 내에 당신의 항아리와 같은:

<property name="mappingDirectoryLocations">
      <list>
        <value>
          com/…/domain/
        </value>
      </list>
</property>

다른 팁

그렇습니다. 기본적으로 스프링은 매핑 파일을 검색 할 때 클래스 경로에서 이동할 수 있습니다. 따라서 항아리가 클래스 경로에있는 경우 최대 절전 모드 매핑 파일이 로컬 세션 공장 Bean에 포함되는 파일에 아무런 문제가 없습니다.

따라서 매핑 파일이 my.spring.package에 있고 mapping.xml이라고하는 경우 경로

my/spring/package/mapping.xml

잘 작동해야합니다.

편집하다

의견을 보내 주셔서 감사합니다. 답변을 업데이트하겠습니다.

아니, 당신은 항아리를 가리킬 수 없지만 ...하지만 , 당신은 항아리에 파일을 매핑하는 것을 가리킬 수 있습니다.

주어진 항아리에서 모든 *hbm.xml 파일을 가져 오기 위해 MappingJarlocations 속성을 사용합니다.

<bean id="sessionFactory"
      class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="mappingJarLocations">
        <list>
            <value>WEB-INF/lib/my-lib.jar</value>
            ...

AnnotationsessionSeassionFactoryBean은 주석 및 매핑 파일, BTW로 훌륭합니다.

편집 :이 게시물 중 일부를 다시 읽었으며 다음과 같은 추상 Bean 정의를 만들어 반복적 인 것들을 줄일 수 있음을 지적하고 싶습니다.

<bean id="annotatedClassList" abstract="true">
    <property name="packagesToScan">
        <list>
            <value>com.foo.*.*</value>
            <value>com.foo.*.*.*</value>
            <value>com.foo.*.*.*.*</value>
        </list>
    </property>
</bean>

<bean id="writingSessionFactory"
      parent="annotatedClassList"
      class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="mappingJarLocations">
    ...

<bean id="readingSessionFactory"
      parent="annotatedClassList"
      class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="mappingJarLocations">
    ...

이것은 내 문제를 해결했습니다

 <build>   <sourceDirectory>src/main/java</sourceDirectory>  
<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.xml</include>
        </includes>
    </resource>
</resources>

그것은 나를 위해 작동합니다 :

<property name="mappingJarLocations">
    <list>
        <value>file:**/yourJarContainHbms.jar</value>
    </list>
</property>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top