2013-04-18 6 views
11

में इकाइयों का स्वतः पता लगाने के लिए कैसे करें मुझे पूरा यकीन है कि मैंने अतीत में जेपीए 2.0 में @Entity के साथ एनानेटेड बीन्स का कुछ प्रकार का ऑटो डिटेक्शन इस्तेमाल किया था, लेकिन मैं यह पता लगाने में सक्षम नहीं हूं कि कैसे। Persistence.xml में class XML तत्व में प्रत्येक बीन को सूचीबद्ध करने के बजाय आप ऐसा कैसे करते हैं?जेपीए 2.0

<exclude-unlisted-classes>false</exclude-unlisted-classes> 

उदहारण के लिए:

उत्तर

8

स्प्रिंग 3.1 के बाद से, आप भी forget persistence.xml करने का विकल्प पूरी तरह है, और अपने EntityManagerFactorypackagesToScan संपत्ति, इस के समान का उपयोग कर कॉन्फ़िगर करें:

<bean id="entityManagerFactory" 
     class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" 
     p:dataSource-ref="dataSource" 
     p:packagesToScan="${jpa.entity.packages}"> 

    <property name="jpaVendorAdapter"> 
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" 
       p:showSql="${hibernate.show_sql}"/> 
    </property> 

    <property name="jpaProperties"> 
     <props> 
      <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> 
      <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> 
     </props> 
    </property> 
</bean> 
+4

मुझे पता है, लेकिन मैंने जेपीए persistence.xml – LuckyLuke

+0

के बारे में पूछा, मुझे पता है, बस इस विकल्प का भी उल्लेख करना चाहता था, क्योंकि यह हाथ में समस्या को हल करने का एक अच्छा तरीका है (इकाई वर्गों को स्वत: पहचानना)। – zagyi

15

आप persistence.xml को अगली पंक्ति को जोड़ने की जरूरत है

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" ...> 
    <persistence-unit name="YourPU" ...> 
     <exclude-unlisted-classes>false</exclude-unlisted-classes> 
     <properties> 
      <property name="eclipselink.logging.level" value="ALL"/> 
      <property name="eclipselink.ddl-generation" 
       value="drop-and-create-tables"/> 
     </properties> 
    </persistence-unit> 
</persistence> 
+2

के साथ संदर्भित करना है, इसे उत्तर स्वीकार किया जाना चाहिए। –

0

देखें पास्कल Thivent यहाँ का जवाब: Do I need <class> elements in persistence.xml?

आपके पास ऐसा करने का अलग तरीका है, लेकिन जेपीए स्वयं ऑटो-स्कैन का समर्थन नहीं करता है। आपकी संस्थाओं का संदर्भ देने का सबसे सरल और साफ तरीका आईएमएचओ आपके मॉडल को एक जार में पैकेज करना है और इसे <jar-file>MyModel.jar</jar-file>