मेरे पास एक कॉलम है जिसमें संभावित रूप से कुछ खराब डेटा है और मैं इसे साफ़ नहीं कर सकता, इसलिए मुझे या तो शून्य या खाली स्ट्रिंग की जांच करनी है। मैं एक हाइबरनेट मानदंड क्वेरी कर रहा हूँ तो मैं निम्नलिखित कि गलत तरीके से अभी रिटर्न मिल गया है:समानता प्रतिबंध के लिए हाइबरनेट एक खाली स्ट्रिंग का उपयोग कैसे करता है?
Session session = getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
Criteria myCriteria = session.createCriteria(Object);
...
myCriteria.add(Restrictions.or(Restrictions.isNull("stringColumn"),
Restrictions.eq("stringColumn", "")));
List<Objects> list = myCriteria.list();
मैं इसे ठीक से परिणाम मैं उम्मीद थी वापस जाने के लिए नहीं मिल सकता है। तो एक प्रयोग के रूप में मैं दूसरे प्रतिबंध को बदला पढ़ने के लिए:
Restrictions.eq("stringColumn", "''")
और यह उम्मीद परिणाम देने शुरू कर दिया है, तो गलत तरीके से हाइबरनेट किसी SQL रिक्त स्ट्रिंग में मेरी रिक्त स्ट्रिंग (उदाहरण के लिए "") अनुवाद (जैसे '') है , या मैं बस यह गलत कर रहा हूँ?
एसक्यूएल में रिक्त स्ट्रिंग पर नक्शे जो डेटाबेस का उपयोग कर रहे - रिक्त स्ट्रिंग अलग डीबीएस में व्यवहार भिन्न है – Mark