GWT RequestFactory: प्रति अनुरोध एकल EntityManager का उपयोग कैसे करें




code-injection cdi (2)

DynaTableRf नमूना ऐप अपने web.xml फ़ाइल में एक दृढ़ संदर्भ सेट करने के लिए सर्वलेट फ़िल्टर जोड़कर कुछ समान करता है। वैकल्पिक रूप से, आप RequestFactoryServlet subclass कर सकते हैं और super.doPost() रिटर्न जब finally ब्लॉक में EntityManager नीचे फाड़ करने के लिए अपने doPost() विधि ओवरराइड सकता है।

RequestFactory संलग्न संस्थाओं को जारी RequestFactory लिए, मुझे यह सुनिश्चित करना होगा कि मैं प्रत्येक अनुरोध के लिए एक ही इकाई RequestFactory का उपयोग करूँ।

मैं ThreadLocal कार्यान्वयन के आधार पर अपनी फैक्टरी कक्षा को एक साथ ThreadLocal , लेकिन मुझे यकीन नहीं है कि संसाधनों को ठीक से कैसे उजागर करना है (उदाहरण के लिए कैसे पता है कि अनुरोध समाप्त हो गया है और कॉल close() करें close() )

क्या यह सुनिश्चित करने का एक आसान तरीका है कि एक एकल इकाई प्रबंधक पूर्ण पूर्ण जे 2 ईई / सीडीआई के बिना दिए गए ServletRequest के दौरान उपयोग किया जाता है? यदि मुझे चाहिए तो मैं उस मार्ग को ले जाऊंगा, लेकिन मैं चीजों को सरल रखने की उम्मीद कर रहा था, खासकर जब से मैं हल्के विकास सर्वर का उपयोग करना जारी रखना चाहता हूं जो कि जीडब्ल्यूटी के साथ आता है।


यदि आप स्प्रिंग का उपयोग कर रहे हैं तो आपको केवल अपने वेब। एक्सएमएल को ओपनएन्टीआईटीएनेटिएन्जर इनव्यू सर्वलेट फ़िल्टर जोड़ना होगा।

<filter>
    <filter-name>entityManagerFilter</filter-name>
    <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>entityManagerFilter</filter-name>
    <url-pattern>/gwtRequest</url-pattern>
</filter-mapping>