के साथ स्प्रिंग डेटा क्वेरी विधि क्या क्वेरी विधि @ पैराम वैकल्पिक होने की अनुमति देना संभव है, खासकर स्प्रिंग डेटा आरईएसटी के मामले में?वैकल्पिक @ पैराम
उदाहरण के लिए, मैं एक ही संसाधन पथ पर एक समान खोज को बांधना चाहता हूं।
@RestResource(path = "driver", rel = "byDriver")
List<Bar> findByDriverId(@Param("id") String id, Pageable pageable);
@RestResource(path = "driverAndSpan", rel = "byDriverAndSpan")
List<Bar> findByDriverIdAndStartTimeGreaterThanEqualAndEndTimeLessThanEqual(@Param("id") String id, @Param("start") Date start,
@Param("end") Date end, Pageable pageable);
कौन सा मुझे देता है::
byDriver: {
href: "http://localhost:8080/foo/search/driver{?id,page,size,sort}",
},
byDriverAndSpan: {
href: "http://localhost:8080/foo/search/driverAndSpan{?id,start,end,page,size,sort}",
}
क्या मैं चाहते निम्न पथ, जहां start
की तरह कुछ देखने के लिए सक्षम होने के लिए अब ऐसा करने के लिए, मैं निम्नलिखित की तरह कुछ की आवश्यकता होगी और end
मेरे रिपोजिटरी में कई विधियों को परिभाषित करने के बजाय वैकल्पिक पैरामीटर हैं।
byDriverAndSpan: {
href: "http://localhost:8080/foo/search/driverAndSpan{?id,*start,*end,page,size,sort}",
}
जो संभवतः दिखाई देगा:
@RestResource(path = "driverAndSpan", rel = "byDriverAndSpan")
List<Bar> findByDriverIdAndStartTimeGreaterThanEqualAndEndTimeLessThanEqual(@Param("id") String id, @Param(value = "start", optional = true) Date start,
@Param(value = "end", optional = true) Date end, Pageable pageable);
पुरानी पोस्ट को खोदना ... मुझे आश्चर्य है कि किसी ने भी [Querydsl] (http://www.querydsl.com/) का उल्लेख नहीं किया है, जो वास्तव में आप उपयोग कर सकते थे। –