मेरे पास दो Entitymanager
बीन कॉन्फ़िगरेशन हैं। प्रत्येक एक अलग स्कीमा के साथ एक अलग डेटाबेस को इंगित करता है (एक ओरेकल है, दूसरा एक इन-मेमोरी एच 2 है)स्प्रिंग डेटा जेपीए: एकाधिक डेटाबेस/एंटीटीमेंजर कॉन्फ़िगरेशन के लिए रिपोजिटरीज
प्रत्येक रिपोजिटरी के लिए एंटीटीमेनगर का उपयोग करने की अस्पष्टता को हल करने के लिए मैं क्या कर सकता हूं? बस की तरह
<jpa:repositories base-package="com.foo.repos.ora"
entity-manager-factory-ref="entityManagerFactoryA">
<jpa:repositories base-package="com.foo.repos.m2"
entity-manager-factory-ref="entityManagerFactoryB">
कुछ का उपयोग करके
No unique bean of type [javax.persistence.EntityManagerFactory] is defined:
expected single bean but found 2
मुझे लगता है मैं एक त्वरित ठीक प्रदान कर सकता है लेकिन उम्मीद है कि वहाँ एक बेहतर समाधान है: अभी मैं इस त्रुटि हो रही है।
संपादित करें:
वसंत-कॉन्फ़िग:
मैं तुम्हें मौजूदा परिदृश्य की जानकारी देने के वहाँ हो दो ईएम
<jpa:repositories base-package="com.foo.repos.ora" entity-manager-factory-ref="entityManagerFactory"/>
<jpa:repositories base-package="com.foo.repos.m2" entity-manager-factory-ref="entityManagerFactory2"/>
<context:component-scan base-package="com.foo" /> ....
सब कुछ यहां से पर "पैकेज में है com.foo.repos.ora " how to make a custom repository के पैटर्न के बाद मुझे दो इंटरफेस 'एआरपोजिटरी', 'एआरपोजिटरी कस्टम' और इसके कार्यान्वयन 'एआरपोजिटरीआईएमएलएल' जैसे
@Repository
public interface ARepository extends ARepositoryCustom, JpaRepository<myEntity, BigDecimal>, QueryDslPredicateExecutor {
}
public interface ARepositoryCustom {
FooBar lookupFooBar()
}
public class ARepositoryImpl extends QueryDslRepositorySupport implements ARepositoryCustom {
ARepositoryImpl(Class<?> domainClass) {
super(domainClass.class)
}
ARepositoryImpl() {
this(myEntity.class)
}
@Override
FooBar lookupFooBar() {
JPQLQuery query = ....
....
return found
}
}
निम्न त्रुटि संदेश में जिसके परिणामस्वरूप:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'aRepositoryImpl': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [javax.persistence.EntityManagerFactory] is defined: expected single bean but found 2
कौन सा निश्चित रूप से सही है, वहाँ 2 ईएम सेम कर रहे हैं, लेकिन जब से मैं ईएम # प्रतिबंधित 1 उर्फ 'entityManagerFactory' 'com.foo पैकेज .repos.ora 'केवल, मुझे अभी भी यकीन नहीं है कि सटीक ईएम बीन का संदर्भ कैसे लें।
2 बी) यदि आपके पास दो 'लोकलकॉन्टेनर एंटीटी मैनेजर फैक्ट्रीबीन' आपके आवेदन संदर्भ में हैं, तो प्रत्येक के अपने 'दृढ़ता UnitName' के साथ एक आकर्षण की तरह काम करता है। –