मैं अपने कुछ एचक्यूएल-स्टेटमेंट्स को मानदंडों में माइग्रेट कर रहा हूं, अब मैं एक समस्या का पता लगा रहा हूं: इकाई गुण इंटीजर टाइप है लेकिन मुझे वाइल्डकार्ड खोज के साथ एक तरह की आवश्यकता है, इसलिए एचक्यूएल में मैंहाइबरनेट मानदंड, पूर्णांक और "पसंद"
session.createQuery("from P1 where id like :id").setString("id", "%"+s+"%")
कोई समस्या नहीं है पर सभी करते हैं, हाइबरनेट पूर्णांक के लिए स्ट्रिंग डाले।
अगर मैं मानदंड में यह कोशिश करते हैं, मैं केवल एक ClassCastException
String cannot be cast to Integer
Criteria crit = sessionFactory.getCurrentSession().createCriteria(P1.class);
crit.add(Restrictions.like("id",s)).addOrder(Order.asc("id")).setMaxResults(maxResults);
क्यों हाइबरनेट दोनों स्थितियों में अलग ढंग से कैसे निपटता है मिल सकता है?
यह समझ में नहीं आता है। क्वेरी इंजन स्वयं इसे प्रबंधित करने में सक्षम है, लेकिन मानदंड इंजन नहीं है। ऐसा लगता है जैसे citeria impl में एक बग है। – onigunn