2012-06-06 17 views
21

नामित क्वेरी में एक क्लॉज में ऐसा होना संभव है? मैं निम्नलिखित करने के लिए कोशिश कर रहा हूँ, लेकिन अपवादनामित प्रश्न जहां क्लॉज

@NamedQuery(name = "Place.getPlaceForCityAndCountryName", 
query = "SELECT p FROM Place p WHERE " + 
     "lower(p.city) like :city and " + 
     "lower(p.countryName) like :countryName"); 

मैं% जोड़ने की कोशिश की हो रही है के रूप में आप सामान्य एसक्यूएल में है, लेकिन संकलन अपवाद मिलेगा।

किसी भी पॉइंटर्स की बहुत सराहना की!

धन्यवाद

+1

यदि आप के रूप में @ Davos555 कम() फ़ंक्शन से बाहर :) – Davos555

+0

तरह दूसरा ले तो क्या होता है अंक, एक कंस्ट्रैसिस और एक उद्धरण गायब है: '"निचला (p.countryName) जैसे: देश नाम"); ' –

+0

हाँ धन्यवाद - मैंने इसे एक और जटिल उदाहरण से कॉपी किया और इसे सही ढंग से नहीं बदला। मैं अब प्रश्न को अपडेट कर दूंगा – RNJ

उत्तर

40

आप NamedQuery में% नहीं हो सकता है, लेकिन आप मूल्य आप पैरामीटर आवंटित में यह हो सकता है।

में के रूप में:

String city = "needle"; 
query.setParamter("city", "%" + city + "%"); 
+0

अच्छी तरह से काम करता है। धन्यवाद esej! – RNJ

+0

अच्छा! धन्यवाद! : डी – Fritz

2

तुम भी concat समारोह का उपयोग कर सकते

@NamedQuery(name = "Place.getPlaceForCityAndCountryName", 
    query = "SELECT p FROM Place p WHERE " + 
     "lower(p.city) like CONCAT(:city,'%')"); 
2
@Query("select c from Curso c where c.descripcion like CONCAT(:descripcion,'%')") 

List<Curso> findByDescripcionIgnoreCase(@Param("descripcion") String descripcion); 
+1

स्टैक ओवरफ़्लो में आपका स्वागत है! हालांकि यह कोड प्रश्न का उत्तर दे सकता है, इस सवाल का जवाब देने और/या कैसे इस प्रश्न का उत्तर देने के बारे में अतिरिक्त संदर्भ प्रदान करता है, यह दीर्घकालिक मूल्य में सुधार करता है। कोड-केवल उत्तर निराश होते हैं। – Ajean

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