मेरे पास रीयल डेटाबेस में विभिन्न प्रकार के ऑब्जेक्ट्स का एक सेट है। अब मैं उस ऑब्जेक्ट के सभी फ़ील्ड समेत कुछ प्रकार के ऑब्जेक्ट्स को क्वेरी करना चाहता हूं। नीचे दी गई विधि, ऑब्जेक्ट के सभी घोषित फ़ील्ड को फ़ील्ड पर प्राप्त कर रही है यह जांचने के लिए कि क्या दिया गया क्वेरी स्ट्रिंग निहित है या नहीं।दायरे डेटाबेस में क्वेरी: क्वेरी स्ट्रिंग युक्त सभी ऑब्जेक्ट खोजें
यह स्ट्रिंग फ़ील्ड प्रकारों के लिए ठीक काम करता है लेकिन पूर्णांक मानों के लिए java.lang.IllegalArgumentException: Field 'documentCompletionStatus': type mismatch. Was STRING, expected INTEGER.
फेंकता है क्योंकि मेरी खोज क्वेरी ऑब्जेक्ट स्ट्रिंग है। मैं अब वर्कअराउंड के रूप में गैर-स्ट्रिंग मानों को छोड़ देता हूं लेकिन अगर मैं इसे सभी क्षेत्रों में खोजना संभव हूं तो मैं उत्सुक हूं।
उदाहरण के लिए, यदि उपयोगकर्ता ऑब्जेक्ट्स के "आयु" फ़ील्ड को लक्षित करने वाला एक पूर्णांक मान खोजना चाहता है, तो मैं इसे इस तरह से काम नहीं कर सकता।
public <T extends RealmObject> List<T> searchDatabase(Class<T> clazz, String searchQuery) {
/* Begin Query */
RealmQuery<T> query = realmDatabase.where(clazz).beginGroup();
Field[] fields = clazz.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
/* Skip NON-String Values */
if (!fields[i].getType().equals(String.class)) {
continue;
}
if (i == 0) {
query.contains(fields[i].getName(), searchQuery, false);
} else {
query.or().contains(fields[i].getName(), searchQuery, false);
}
}
/* Return All Objects Found */
return query.endGroup().findAll();
}
धन्यवाद ईसाई, यही वह है जो मैं अब कर रहा हूं। लेकिन मैंने सोचा कि रियलम में ऐसा करने का एक तरीका हो सकता है। क्या आप लोग एक तरह की क्वेरी विधि बनाने की योजना बना रहे हैं जिसे हम सभी क्षेत्रों में पूछ सकते हैं? फ़ील्ड नाम के बावजूद 'query.containsAll (searchQuery) 'जैसी कुछ। – osayilgan
हमारे पास इस समय कोई योजना नहीं है, लेकिन गिटहब पर एक सुविधा अनुरोध तैयार करने के लिए स्वतंत्र महसूस करें। सटीक उपयोग के मामले पर चर्चा करना आसान है और यह देखना आसान है कि दूसरों को उस कार्यक्षमता में भी रूचि है या नहीं। –