2012-02-13 5 views
10

은 하나씩이 아니라 범위별로 hibernate.cfg.xml에 객체를 정의 할 수있는 방법이 있습니까?Hibernate + Spring MVC : 객체 매핑 설정

예를 들어, 봄에 당신은 주석에 의해 모든 컨트롤러를 정의 할 수 있습니다 :

<context:component-scan base-package="crm.controller" /> 

내가 같은 방법으로 최대 절전 클래스를 정의 할 수 있습니까? 아니면 하나씩 정의해야합니까? 대신 요소의 집합의

<mapping package="com.mycompany.model" /> 

:

<mapping class="com.mycompany.model.EntytyOne" /> 
<mapping class="com.mycompany.model.EntytyTwo" /> 
+0

관련 질문 : http://stackoverflow.com/q/1413190/211197 http://stackoverflow.com/q/2419802/211197 – maksimov

답변

1

Spring MVC를 사용하는 경우 sessionFactory를 설정할 때 구성 할 수 있습니다. 당신이 주석 클래스를 사용하는 경우

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="mappingResources"> 
     <list> 
      <value>file1.hbm.xml</value> 
      <value>file2.hbm.xml</value> 
     </list> 
    </property> 
    <property name="hibernateProperties" ref="hibernateProperties"/> 
</bean> 

: 당신이 HBM 파일을 사용하는 경우 법인 @

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="packagesToScan" value="com.me.domain"> 
    <property name="hibernateProperties" ref="hibernateProperties"/> 
</bean> 
0

에 한번 감사드립니다. 나는이,이 아웃 오브 박스로, 최대 절전 모드를 지원하지 않습니다 "패키지 sanning을"도메인 클래스를 발견 지금까지 내가 기억하는 springDAOcontext.xml

<bean id="csiSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
    <property name="configLocation"> 
     <value>classpath:hibernate/hibernate.cfg.xml</value> 
    </property> 
    <property name="dataSource" ref="DataSource"/> 

    <property name="mappingResources"> 
     <list> 
      <value>hibernate/*</value> 
        </list> 
        <property> 
+0

당신이 더 많은 정보를 제공 할 수 나를 – nKognito

+0

작동하지 않습니다? 로그에 오류가 있습니까? 아마 여기 붙여 넣을 수 있을까요? –

+0

매핑 패키지를 사용할 때 Entity not found 오류가 발생합니다. – nKognito

0

왜 당신이 노력 해달라고

당신에게 사용

0

을 구성했습니다.

그러나 Spring MVC와 Hibernate를 통합하고 있다면, 클래스 (표준 JPA + Hibernate 특정 주석)에 주석을 달고 Spring 컨텍스트 구성 파일 내에 Hibernate 엔티티 클래스가 포함 된 패키지를 지정할 수있다. 여기에 내가 이전 프로젝트에 구성 방법은 다음과 같습니다

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="packagesToScan" value="org.springmvc.domain" /> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop> 
      <prop key="hibernate.hbm2ddl.auto">update</prop> 
      <prop key="show_sql">true</prop> 
      <prop key="log_level">DEBUG</prop> 
     </props> 
    </property> 
</bean> 

은 "packagesToScan"속성

봄이 엔티티 클래스를 발견 할 수있는 최대 절전 모드 스캔이있을 것이다 패키지를 정의합니다.

0

메신저 사용 JPA 주석을, applicationContext.xml의 코드는 다음과 같습니다

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="packagesToScan" value="com.yourcompany.module" /> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">${hibernate.dialect}</prop> 
      <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> 
     </props> 
    </property> 
</bean> 

패키지 경로 "com.yourcompany.module"은 자바 엔터티 패키지입니다 (예 :

package com.yourcompany.module; 
@Entity 
class MyEntity{ 
    private Long id; 
    set get... 
} 
).
관련 문제