grails - Property comparison query with date object returns object while properties don't match -


मेरे पास Grails में एक डोमेन वर्ग है:

  वर्ग गतिविधिइवेंट {स्ट्रिंग गतिविधि नाम की तारीख startTimeStamp दिनांक समाप्तिटीमस्टैंड क्लाइंट क्लाइंट स्थिर हैसब = [क्लाइंट: क्लाइंट] स्थिर बाधाएं = {activityName nullable: गलत, खाली: गलत, आकार: 0..50 startTimeStamp nullable: गलत endTimeStamp nullable: झूठी ग्राहक नल योग्य: गलत}} ​​ 

जहां ग्राहक एक और डोमेन वर्ग है।

मेरे परीक्षण में मैं 2 ActivityEvent ऑब्जेक्ट्स को बचाता हूं डीबी के लिए:

  तिथि अब = नई तिथि () क्लाइंट सी = क्लाइंट.जेट ("1") नई गतिविधिइवेंट (क्लाइंट: सी, गतिविधिनाम: "परीक्षण", स्टार्टटाइमस्टैम्प: नई तिथि ( अब। गेट टाइम ()), एंडटाईमस्टैम्प: नई तिथि (अब। गेट टाइम ())। Save (failOnError: true) नया ActivityEvent (क्लाइंट: सी, गतिविधिनाम: "परीक्षण", startTimeStamp: नई तिथि (अब .getTime ()) , एंडटाइमस्टैम्प: एन अब जब मैं निष्पादित करता हूँ ( c  और <के साथ   और < कोड> नाम  इस विधि के लिए पैरामीटर होने वाला है) 

  ActivityEvent.findAll {client == c & amp; amp; ActivityName == नाम & amp; amp; StartTimeStamp == endTimeStamp}  

मेरा परिणाम है यह:

<पूर्व> [ActivityEvent - name: test से सोम Oct 27 09:37:56 सीईटी 2014 सोम से अक्टूबर 27 09:42:56 सीईटी 2014, गतिविधिइवेंट - नाम: परीक्षा सोमवार 27 अक्टूबर 09:47:56 सीईटी 2014 से सोम अक्टूबर 27 09:47:56 सीईटी 2014]

के रूप में आप देख सकते हैं कि ActivityEvent में startTimeStamp के साथ endTimeStamp के बराबर नहीं है, जबकि मैंने अपनी क्वेरी में यह निर्दिष्ट किया था कि उन्हें इसकी आवश्यकता है बराबर हो।

जब मैं जहां

  का उपयोग करते हुए एक ही क्वेरी चलाते हैं ActivityEvent.where {client == c & amp; ActivityName == नाम & amp; amp; StartTimeStamp == endTimeStamp} .खोलें ()  

मुझे एक अपवाद मिलता है org.hibernate.NonUniqueResultException: क्वेरी एक अनूठा परिणाम नहीं लौटा था: 2 कोई आश्चर्य नहीं है जो चूंकि मिलते हैं भी 2 ऑब्जेक्ट्स रिटर्न करता है।

क्या मैं कुछ भूल रहा हूं या क्वेरी में कुछ गलत कर रहा हूं? परिणामों के प्रिंटआउट के अनुसार एक आइटम को क्वेरी से मेल नहीं होना चाहिए।


Comments