2012-03-18 5 views
14

हैलो मैं वसंत-हाइबरनेट एप्लिकेशन बना रहा हूं। क्या मुझे वास्तव में नीचे से विन्यास की आवश्यकता है?यदि @Entity है तो "एनोटेटेड क्लासेस" की आवश्यकता क्यों है?

<property name="annotatedClasses"> 
     <list> 
      <value>org.fixus.springer.model.User</value> 
     </list> 
    </property> 

मैं अपने रूट context.xml

<mvc:annotation-driven /> 
<context:component-scan base-package="org.fixus.springer" /> 
<context:component-scan base-package="org.fixus.springer.model" /> 

में एनोटेशन चालित निर्धारित किया है अब यह व्याख्या @Entity साथ पैकेज से नहीं स्वत: सब कुछ लेने के लिए और यह तालिका में बदलने का हाइबरनेट चाहिए? अब तक एनोटेटेड क्लासेस के बिना वह एक इकाई से एक टेबल नहीं बनाएगा

उत्तर

27

docs, ल्यूक का प्रयोग करें!

[...] एक AnnotationSessionFactoryBean सेम परिभाषा के लिए उदाहरण:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 
    <property name="annotatedClasses"> 
     <list> 
      <value>test.package.Foo</value> 
      <value>test.package.Bar</value> 
     </list> 
    </property> 
</bean> 

या जब इकाई वर्गों के autodetection के लिए classpath स्कैनिंग का उपयोग करते हुए:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 
    <property name="packagesToScan" value="test.package"/> 
</bean> 

जैसा कि आप देख सकते हैं कि आपके पास def के बीच एक विकल्प है सभी वर्गों को स्पष्ट रूप से या केवल स्कैनिंग के लिए पैकेज में शामिल करना। <context:component-scan/> हाइबरनेट/जेपीए एनोटेशन को नहीं पहचानता है और इसलिए इसका कोई प्रभाव नहीं पड़ता है।