2013-02-11 13 views
7

मैं सिर्फ जावा का उपयोग कर जेपीए को कॉन्फ़िगर करने की कोशिश कर रहा हूं।जेपीए का जावा कॉन्फ़िगरेशन संस्करण क्या है: रिपॉजिटरीज टैग?

मुझे यह विचार आया कि @EnableJpaRepositories jpa के बराबर होगा: xml में भंडार टैग, लेकिन मुझे लगता है कि यह मामला नहीं है?

मैं अपने एक्सएमएल में यह है:

<jpa:repositories base-package="com.myapp.bla.bla" /> 

लेकिन अगर मैं इसे हटाने और बजाय

@EnableJpaRepositories("com.myapp.bla.bla") 

का उपयोग अपने जावा config में, मैं एक अपवाद है - मैंने सोचा कि यह कॉन्फ़िगर करने के लिए संभव हो गया था 1.2.0 के बाद जावा के साथ जेपीए?

संपादित करें:

जड़ अपवाद है:

No bean named 'entityManagerFactory' is defined 

मुझे लगता है अपवाद मेरी config में इस परिभाषा से कोई लेना देना नहीं है, लेकिन जैसा कि कहा, सब कुछ काम करता है अगर मैं xml रखने के लिए और इसे आयात मेरे जावा कॉन्फ़िगरेशन के लिए।

@Bean 
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() throws ClassNotFoundException { 
    LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); 

    factoryBean.setDataSource(dataSource()); 
    factoryBean.setPackagesToScan(new String[] { "com.myapp.bla.bla.model" }); 
    factoryBean.setPersistenceProviderClass(HibernatePersistence.class); 
    Properties props = new Properties(); 
    props.put("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect"); 
    factoryBean.setJpaProperties(props); 

    return factoryBean; 
} 
+1

कृपया अपने प्रश्न में अपवाद भी पोस्ट करें। –

उत्तर

6

समस्या यह है कि आपके वर्तमान कॉन्फ़िगरेशन एक सेम entityManagerFactoryBean कहा जाता है बनाता है। हालांकि, आपके रूट अपवाद का त्रुटि संदेश कहता है कि इकाई नामक एक बीन इकाई प्रबंधक फैक्टरी नहीं मिला है।

आप इस समस्या (आपको सबसे अधिक पसंद एक चुनना) ठीक करने के लिए दो विकल्प हैं:

  1. बदलें विधि का नाम जो entityManagerFactoryBean (से LocalContainerEntityManagerFactoryBean कॉन्फ़िगर करता है)entityManagerFactory को ()। यह इकाई मैनेजर फैक्टरी नामक एक बीन बनाता है।
  2. "entityManagerFactory" को @ बीन एनोटेशन का नाम विशेषता सेट करें। दूसरे शब्दों में, @Bean (name = "entityManagerFactory") एनोटेशन के साथ कॉन्फ़िगरेशन विधि को एनोटेट करें। इस तरह आप स्वयं बीन का नाम निर्दिष्ट कर सकते हैं और यह सुनिश्चित कर सकते हैं कि एनोटेटेड विधि का नाम अनदेखा कर दिया गया हो।
+0

विकल्प 3. एनोटेशन पर इकाई प्रबंधक FactoryRef संपत्ति सेट करें। प्रश्न का उत्तर देने के बाद यह नया हो सकता है। –

संबंधित मुद्दे