मैं अपने डेटाबेस से डेटा प्राप्त करने के लिए जेपीए (eclipselink) का उपयोग करना चाहता हूं। डेटाबेस को कई अन्य स्रोतों द्वारा बदला जाता है और इसलिए मैं निष्पादित किए गए प्रत्येक खोज के लिए डेटाबेस पर वापस जाना चाहता हूं। मैंने कैश को अक्षम करने पर कई पोस्ट पढ़ी हैं लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। कोई विचार?जेपीए (eclipselink) में कैशिंग अक्षम करें
मैं निम्नलिखित कोड निष्पादित करने के लिए कोशिश कर रहा हूँ:
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("default");
EntityManager em = entityManagerFactory.createEntityManager();
MyLocation one = em.createNamedQuery("MyLocation.findMyLoc").getResultList().get(0);
MyLocation two = em.createNamedQuery("MyLocation.findMyLoc").getResultList().get(0);
System.out.println(one==two);
एक == दो सच है, जबकि मैं यह गलत होना चाहता हूँ।
मैं प्रत्येक जोड़ने की कोशिश की है/मेरे सभी persistence.xml के लिए निम्न
<property name="eclipselink.cache.shared.default" value="false"/>
<property name="eclipselink.cache.size.default" value="0"/>
<property name="eclipselink.cache.type.default" value="None"/>
मैं भी इकाई में ही @Cache एनोटेशन जोड़ने की कोशिश की है: कुछ
@Cache(
type=CacheType.NONE, // Cache nothing
expiry=0,
alwaysRefresh=true
)
मैं गलत समझ रहा हूँ ?
जेम्स द्वारा डेटाबेस में जाने के लिए प्रत्येक क्वेरी मजबूर कर सकते हैं, कैशिंग बंद किया गया था (<संपत्ति नाम = "eclipselink.cache.shared.default "value =" false "/> ) जब आपने इसका परीक्षण किया? – Justin
क्षमा करें बस यह देखा, हाँ कैशिंग बंद था। मुझे अभी भी यह समस्या है और मैं समाधान के करीब नहीं हूं। – James