के साथ खंड में मैं IN खंड और स्प्रिंग डेटा से @Query एनोटेशन का उपयोग कर एक कैसंड्रा तालिका से पूछताछ करने का प्रयास कर रहा हूं। मेरे पास last_name की विभाजन कुंजी और first_name की क्लस्टरिंग कुंजी वाला एक टेबल है।स्प्रिंग डेटा और कैसंड्रा @Query
मैं इस क्वेरी
@Query("SELECT * FROM people WHERE last_name=?0")
public List<People> findByLastName(String lastName);
काम कर रहा है और मैं
@Query("SELECT * FROM people WHERE last_name=?0 AND first_name IN ?1")
public List<People> findByLastName(String lastName, String[] firstName);
की तरह कुछ करना चाहते हैं मैं इसे
CassandraOperations.select("SELECT * FROM people WHERE last_name=" + lastName +
" AND first_name IN (" + concatinatedNameList + ")", People.class);
का उपयोग कर काम कर रहा लेकिन कई कारणों से के लिए है (कोड शैली, परीक्षण, मैं कसम खाता हूं और अधिक हैं) मैं @Query का उपयोग करना पसंद करूंगा। कोई विचार?
अधिक जानकारी के लिए संपादित करें!
एक सरणी में पासिंग, सेट करें या सूची लौटाती है Caused by: java.lang.IllegalArgumentException: encountered unsupported query parameter type [class [Ljava.lang.String;] in method public abstract
भी करने की कोशिश की:
String firstName = "Joe,Jim";
@Query("SELECT * FROM people WHERE last_name=?0 AND first_name IN (?1)")
public List<People> findByLastName(String lastName, String firstName);
कुछ नहीं मिला, एक ही व्यक्ति के लिए पुस्तकालय खोजें एक concatinated नाम ('Joe,Jim')
String firstName = "'Joe','Jim'";
@Query("SELECT * FROM people WHERE last_name=?0 AND first_name IN (?1)")
public List<People> findByLastName(String lastName, String firstName);
साथ
कुछ भी नहीं मिला, अनुरोध बच निकला है और ('''Joe'',''Jim''')
String firstName = "Joe','Jim"; // Hoping the library would just add the outer quotes, getting desperate
@Query("SELECT * FROM people WHERE last_name=?0 AND first_name IN (?1)")
public List<People> findByLastName(String lastName, String firstName);
कुछ नहीं मिला, अनुरोध भाग निकले और ('Joe'',''Jim')
क्या आपने कोई संग्रह प्रकार आजमाया है? स्ट्रिंग सरणी के बजाय तारों की सेट या सूची? –
दोनों सूचियां और समूह स्टार्टअप पर इस तरह की एक त्रुटि लौटाते हैं: इसके कारण: java.lang.IllegalArgumentException: असमर्थित क्वेरी पैरामीटर प्रकार का सामना करना पड़ा [इंटरफ़ेस java.util।सेट करें] ' –