복붙노트

[SPRING] hbm.xml을 사용하는 대신 Hibernate 엔티티에 대한 패키지를 검사하는 방법은 무엇입니까?

SPRING

hbm.xml을 사용하는 대신 Hibernate 엔티티에 대한 패키지를 검사하는 방법은 무엇입니까?

나는 현재 을 통해 Spring 3.1 및 Hibernate 4를 사용하여 DAO 및 서비스 패키지를 검사한다. configLocation 속성과 hbm.xml 파일 대신 @Entity로 표시된 클래스에 대해 동일한 작업을 수행 할 수있는 방법이 있는가?

<hibernate-configuration>
    <session-factory>
        <mapping class="com.example.model.User" />
            <!-- etc. -->
    </session-factory>
</hibernate-configuration>

해결법

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

    1.

    <bean id="sessionFactory"
      class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"
      p:dataSource-ref="dataSource"
      p:configLocation="WEB-INF/classes/hibernate.cfg.xml"
      p:packagesToScan="com.example.model"
    />
    

    모델 패키지의 모든 것을 검사합니다. 내 cfg.xml을 사용하여 show_sql 및 hb2ddl.auto와 같은 설정을 포함합니다.

  2. ==============================

    2.application context.xml 파일에서 이와 같은 작업을 수행하여 모든 주석 클래스를 스캔 할 수 있습니다.

    application context.xml 파일에서 이와 같은 작업을 수행하여 모든 주석 클래스를 스캔 할 수 있습니다.

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="lobHandler" ref="lobHandler"/>
    <property name="packagesToScan">
        <list>
            <value>com.idc.scd.domain</value>
            <value>com.idc.scd.domain.dropdown</value>
            <value>com.idc.scd.domain.external</value>
            <value>com.idc.scd.domain.pk</value>
        </list>
    </property>
        <property name="hibernateProperties">
          <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
            <prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop>
            <prop key="hbm2ddl.auto">validate</prop>
            <prop key="hibernate.cache.use_query_cache">true</prop>
            <prop key="hibernate.connection.release_mode">after_statement</prop>
            <prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</prop>
            <prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop>
            <prop key="hibernate.cache.use_structured_entries">${hibernate.cache.use_structured_entries}</prop>
            <prop key="hibernate.jdbc.fetch_size">${hibernate.jdbc.fetch_size}</prop>
            </props>
        </property>
    </bean>
    
  3. ==============================

    3.Spring의 mappingLocations 속성을 사용하여 Spring이 최대 절전 모드 매핑 파일을 찾을 위치를 지정할 수 있습니다.

    Spring의 mappingLocations 속성을 사용하여 Spring이 최대 절전 모드 매핑 파일을 찾을 위치를 지정할 수 있습니다.

    <property name="mappingLocations" value="classpath:com/example/model/hibernate/*.hbm.xml"/>
    

    희망이 도움이됩니다.

  4. ==============================

    4.간단히 말해, 'spring-servlet.xml'설정 파일에서 다음과 같은 코드를 사용할 수 있습니다 :

    간단히 말해, 'spring-servlet.xml'설정 파일에서 다음과 같은 코드를 사용할 수 있습니다 :

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="configLocation">
                <value>classpath:hibernate.cfg.xml</value>
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">${jdbc.dialect}</prop>
                    <prop key="hibernate.show_sql">true</prop>
                </props>
            </property>
            <property name="packagesToScan" value="com.your.bean.package" />
        </bean>
    

    노트 :

  5. from https://stackoverflow.com/questions/11257598/how-to-scan-packages-for-hibernate-entities-instead-of-using-hbm-xml by cc-by-sa and MIT license