2009-10-31 2 views
9

내 applicationContext.xml에, 이것은 POJO에 XML을 매핑하는 방법입니다. xml을 만들 필요없이 클래스 파일에 디렉토리를 매핑하는 방법?spring + hibernate 매핑 클래스 (xml없이)

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
<property name="mappingResources"> 
      <list> 
       <value>com/custompackage/custom/spi/hibernate3/HibernateCurrentStep.hbm.xml</value> 
       <value>com/custompackage/custom/spi/hibernate3/HibernateHistoryStep.hbm.xml</value> 
       <value>com/custompackage/custom/spi/hibernate3/HibernatecustomEntry.hbm.xml</value> 
        <value>user/custom/hibernate3/PropertySetItemImpl.hbm.xml</value> 
        <value>com/custompackage/user/provider/hibernate3/user/impl/HibernateGroupImpl.hbm.xml</value> 
        <value>com/custompackage/user/provider/hibernate3/user/impl/HibernateUserImpl.hbm.xml</value> 
      </list> 
     </property> 


     <property name="hibernateProperties"> 
      ..... 
     </property> 
     <property name="dataSource"> 
      <ref bean="dataSource" /> 
     </property> 

    </bean> 

답변

23

그리고 당신은 더 그래서 지금 AnnotationSessionFactoryBean

<property name="packagesToScan" value="com.mycompany.sample.domain" /> 

<property name="annotatedClasses"> 
    <list> 
     <value>com.mycompany.sample.domain.Order</value> 
     <value>com.mycompany.sample.domain.LineItem</value> 
     ... 
    </list> 
</property> 

를 변환하여 com.mycompany.sample.domain 패키지에 @Entity 주석 모든 클래스를 일을 단순화 할 수는 자동으로 선택됩니다.

+0

내 AnnotationSessionFactoryBean에서 클래스 매핑을 어떻게 변환해야합니까? –

+0

@ JiayiZhou 당신이 정교하게 말할 수 있습니까, 나는 당신이 묻고있는 것을 얻지 못합니다. –

+0

내 엔티티 중 하나에서 OneToOne 매핑을 다른 엔티티에 추가하는 속성. 내가 스프링 프레임 워크 XML 구성에 추가하여 작동 시키려면 어떻게해야합니까? 내 질문에 대한 자세한 내용은 여기에서 확인할 수 있습니다. http://stackoverflow.com/questions/40956208/how-to-configure-hibernate-onetoone-mapping-using-spring-framework –

17

대신 XML 매핑 파일을 사용하여, 당신은 자바 5 주석을 기반으로 Hibernate Annotations 라이브러리를 사용할 수 있습니다. 사용하지만

평소와 같이, 당신은 당신의 영속 클래스를 선언, 하이버 네이트 구성 파일 (일반적으로 hibernate.cfg.xml)에서 당신의 영속 클래스를 선언 할 <mapping> 요소가 필요합니다

<hibernate-configuration> 
     <session-factory> 
     <mapping class="com.mycompany.sample.domain.Order"/> 
     <mapping class="com.mycompany.sample.domain.LineItem"/> 
     </session-factory> 
    </hibernate-configuration> 

하는 경우 당신은 Spring 프레임 워크를 사용하고있다.

과 같이 AnnotationSessionFactoryBean 클래스를 사용하여 주석 기반 Hibernate 세션 팩토리를 설정할 수있다.
+0

Bean 선언은 DispatcherServlet Context에 있어야합니까? 아니면 다른 Spring Framework 설정 파일에서? 또한 hibernate.cfg.xml에서 내 persistence 클래스를 선언했을 때 Spring Security에서 주석 기반 Hibernate 세션 팩토리를 설정해야합니까? – woyaru

5

클래스에 주석을 사용할 수 있지만, Hibernate의 경우 (Spring에서 사용하기 위해) 내장 된 것이 있는지 확신하지 못합니다. This thread은 더 많은 기술을 피하려는 경우에 도움이되지만, 같은 목표를 달성하기 위해 Hibernate와 함께 JPA (Java Persistence Annotations)를 사용할 수도 있습니다.

Here's JPA + Hibernate + Spring을 사용하기위한 좋은 자습서입니다.

3

@Pascal Thivent는 여러분이하고 싶은 일에 아주 좋은 출발점을 제공합니다. 각 Entity 클래스에 대해 주석을 작성해야합니다. 이것은 annotations in Hibernate을 expalin하는 문서입니다.

문서에서 :

@Entity 
    public class Flight implements Serializable { 
    Long id; 

    @Id 
    public Long getId() { return id; } 

    public void setId(Long id) { this.id = id; } 
    } 

@Pascal Thivent에서 언급 한 것 외에도 필요한 모든 것을 얻을 수 있습니다.