2016-07-04 14 views
6

में जोड़ता है, मुझे वर्तमान में मानदंडबिल्डर का उपयोग करके हाइबरनेट के साथ दोहरे परिणाम मिल रहे हैं।हाइबरनेट मानदंड बिल्डर एकाधिक पंक्तियों को एक

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

घटना

ID .... 
--------- 
1123 
1124 
1125 

तालिका

ID event_id tag_id 
---------------------- 
1 1124  2 
2 1124  3 
3 1123  6 
4 1123  7 

टैग

ID tag 
--------- 
1 Dance 
2 Hiphop 
... 

यह स्पष्ट रूप से डबल परिणामों में परिणाम होगा .. जैसे शामिल हो।

eventID ... tag_id tag 
-------------------- 
1124  2  Hiphop 
1124  3  Dance 

क्या यह हाइबरनेट के मानदंडबिल्डर के भीतर परिणाम परिणाम प्राप्त करने के लिए संभव है;

eventID ... tag_id tag 
-------------------- 
1124  2,3  Hiphop, Dance 

मैं एसक्यूएल सर्वर के भीतर ही कई समाधान देखा है लेकिन मैं एक हाइबरनेट के CriteriaBuilder का उपयोग नहीं कर पा सकते हैं।

उत्तर

6

मुझे अकेले मानदंडबिल्डर का उपयोग करके कोई समाधान नहीं पता है। दो विकल्प जो काम कर सकते हैं। टेबल इवेंट इकाई और एक टैग के बीच कई रिश्तों की तरह दिखता है।

  1. ईवेंट इकाई में @ फ़ॉर्मुला एनोटेशन के साथ दो फ़ील्ड जोड़ें। @ फर्मुला एनोटेशन आपको इसमें कुछ एसक्यूएल स्टेटमेंट्स का उपयोग करने की अनुमति देता है और वर्तमान इकाई से पैरामीटर का उपयोग कर सकता है। एक सूत्र के अंदर आप कुछ एसक्यूएल मालिकाना दृष्टिकोण

  2. बेशक आप जावा में ऐसा कर सकते हैं यदि आपके पास ईवेंट ऑब्जेक्ट पर टैग ऑब्जेक्ट का संग्रह है। शायद आपके द्वारा पहले से ही

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