2009-10-31 8 views
9

benim uygulamaContext.xml içinde, ben nasıl xml POJO. dizini xml oluşturmak için gerekmeden dizin dosyasına nasıl eşlenir?bahar + hibernate eşleme sınıfı olmadan 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> 

cevap

23

Ve ayrıca bu kadar şimdi AnnotationSessionFactoryBean yılında

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

için

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

dönüştürerek com.mycompany.sample.domain pakette @Entity ile açıklamalı tüm sınıfları şeyleri kolaylaştırabilir otomatik alınacaktır.

+0

Sınıf eşlemesini AnnotationSessionFactoryBean öğeme dönüştürmem gerekir? –

+0

@JiayiZhou Ayrıntılı bilgi verebilir misiniz? Ne soruyorsanız onu almam. –

+0

Varlığımdan birinde, OneToOne'un başka bir varlığa eşleştirdiği bir özellik ekledim. Çalışması için ilkbahar çerçeve xml yapılandırmasına ne eklemeliyim? Sorumluluğumun ayrıntılarını buradan kontrol edebilirsiniz: http://stackoverflow.com/questions/40956208/how-to-configure-hibernate-onetoone-mapping-using-spring-framework –

17

yerine XML eşleme dosyaları kullanmak yerine, Java 5 ek açıklamaları dayanmaktadır Hibernate Annotations kitaplığını kullanabilirsiniz. Kullanmak olsa

Her zamanki gibi, size kalıcı sınıfları beyan etmek, hazırda yapılandırma dosyasında (genellikle hibernate.cfg.xml) da kalıcılık sınıfları beyan etmek <mapping> elemanı gerekir:

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

ise Bahar çerçevesini kullanıyorsanız, burada gösterildiği gibi AnnotationSessionFactoryBean sınıfını kullanarak bir ek açıklama tabanlı Hazırda Bekleme oturumu fabrika kurabilirsiniz:

<!-- Hibernate session factory --> 
    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource"> 
    <ref bean="dataSource"/> 
    </property> 
    <property name="hibernateProperties"> 
    <props> 
     <prop key="hibernate.dialect">org.hibernate.dialect.DerbyDialect</prop> 
     <prop key="hibernate.hbm2ddl.auto">create</prop> 
     ... 
    </props> 
    </property> 
    <property name="annotatedClasses"> 
    <list> 
     <value>com.mycompany.sample.domain.Order</value> 
     <value>com.mycompany.sample.domain.LineItem</value> 
     ... 
    </list> 
    </property> 
</bean> 
+0

Fasulye beyanınız DispatcherServlet Bağlamında yer almalı mı? Veya başka bir Bahar Çerçeve yapılandırma dosyasında mı? Ayrıca, hibernate.cfg.xml dosyasında benim kalıcılık sınıflarımı bildirdiğimde de Spring Spring'te bir ek açıklama tabanlı Hazırda Bekleme oturumu fabrikası kurmalı mıyım? – woyaru

5

Sınıfınızdaki ek açıklamaları kullanabilirsiniz, ancak Hazırda bekletme için yerleşik bir şey olmadığından emin değilim (ilkbaharda kullanım için). Daha fazla teknolojiden kaçınmak istiyorsanız This thread yardım etmelidir, ancak aynı amacı gerçekleştirmek için Hazırda Bekletme ile uyumlu olarak Java Persistence Annotations (JPA) özelliğini de kullanabilirsiniz. JPA + Hazırda Bekletme + İlkbahar'ı kullanmak için iyi bir öğretici

Here's.

3

@Pascal Thivent ne yapmak istediğinize çok iyi bir başlangıç ​​sağlar. Her bir Varlık sınıfı için bunlara not eklemeye ihtiyacınız olacaktır. Bu, annotations in Hibernate'u açıklayan dokümanlardır.

örn. Dokümanlar:

@Entity 
    public class Flight implements Serializable { 
    Long id; 

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

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

Yani gereken her şeyi almalısınız @Pascal Thivent size bahsettiği ne ek olarak.