मैंने एक NamedQuery बनाया है जो इस तरह दिखता है:
@NamedQuery(name = "EventLog.viewDatesInclude",
query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND "
+ "el.timeMark <= :dateTo AND "
+ "el.name IN (:inclList)")
मैं जो करना चाहता हूं वह पैरामीटर में भरा गया है: एक आइटम के बजाय आइटम की सूची के साथ झुकाव। उदाहरण के लिए अगर मेरे पास एक new List<String>() { "a", "b", "c" }
तरीका है जो मुझे इसमें है: inclList पैरामीटर? यह केवल मुझे एक स्ट्रिंग को संहिताबद्ध करने देता है। उदाहरण के लिए:
setParameter("inclList", "a") // works
setParameter("inclList", "a, b") // does not work
setParameter("inclList", "'a', 'b'") // does not work
setParameter("inclList", list) // throws an exception
मुझे पता है कि मैं बस एक स्ट्रिंग बना सकता हूं और उससे पूरी क्वेरी का निर्माण कर सकता हूं, लेकिन मैं ओवरहेड से बचना चाहता था। क्या ऐसा करने का कोई बेहतर तरीका है?
संबंधित प्रश्न: यदि सूची बहुत बड़ी है, तो क्या इस तरह क्वेरी बनाने का कोई अच्छा तरीका है?