是否有可能允許查詢方法@Params是可選的,特別是在Spring Data REST的情況下?帶可選@Param的彈簧數據查詢方法
例如,我想將一個非常相似的搜索綁定到相同的資源路徑。現在做到這一點,我需要像下面這樣:
@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
是可選參數,而不是在我的Repository中定義多個方法。
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/),這正是你可以使用。 – 2017-04-07 08:32:07