2011-01-03 7 views
6

है यह जांचने के लिए सबसे अच्छा तरीका/सर्वोत्तम अभ्यास क्या है कि कोई इकाई जेपीए का उपयोग कर डेटाबेस में पहले से मौजूद है या नहीं?जावा जेपीए: प्रदर्शनकर्ता जांच करें कि क्या इकाई पहले से ही डीबी

मैं एक क्लाइंट लिख रहा हूं जो एक डीबी में मेजबान जानकारी जोड़ता है। उदाहरण के लिए संलग्न स्टोरेज लंस, एचबीए आदि ...

यदि मैं किसी होस्ट के लिए लून जोड़ना चाहता हूं, तो मुझे यह जांचना होगा कि क्या लून पहले से ही डेटाबेस में है या नहीं। (लून पहले से ही किसी अन्य होस्ट से जुड़ा जा सकता है)।

  1. मैं लुन के लिए एक का चयन करना है, अगर यह DB में पहले से ही है लुन डालें और एक अपवाद के लिए जाँच (अद्वितीय बाधा) को
  2. कोशिश की जाँच करने के:

    2 possibilites देखना

क्या किसी के पास इसका अनुभव है।

बीआर, रेने

उत्तर

7
entityManager.find(SomeEntity.class, id) 

रिटर्न: पाया इकाई उदाहरण या नल अगर इकाई मौजूद नहीं है

यह DB में एक साधारण का चयन करेंगे। बस सुनिश्चित करें कि आपके संग्रह (यदि कोई हैं) आलसी हैं।

+0

यह एक लेनदेन यूआई क्लाइंट (सर्वोत्तम अभ्यास) के लिए ठीक होना चाहिए। थोक मोड में बेहतर प्रदर्शन के लिए, सृजन करने की कोशिश करने और (दुर्लभ) "पहले से मौजूद अपवाद" पकड़ने के लिए तेज़ी होगी। (वास्तव में यह इकाई के अस्तित्व की संभावना पर निर्भर करता है, यदि कई अपवाद हैं, तो यह इकाई के अस्तित्व का परीक्षण करने के लिए तेज़ होगा)। – snowflake

+0

यदि मैं आईडी नहीं जानता, तो मैं क्या करूँ? – reen

+0

फिर अन्य फ़ील्ड के लिए एक जेपीक्यूएल क्वेरी बनाएं। – Bozho

4

मुझे लगता है कि अद्वितीय बाधा अपवाद की जांच करना एक बेहतर तरीका है। प्रत्येक सम्मिलन के लिए लागत के बारे में सोचें ...

+0

हाँ, मैंने यही किया। बस इकाई को बनाए रखें और अपवाद के साथ उचित तरीके से निपटें ताकि अंत में उपयोगकर्ता को सूचित किया जा सके कि कौन से क्षेत्र अमान्य हैं। –

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