Chr*_*Geo 6 java spring spring-data-rest
我创建了以下@RepositoryRestResource查询,我想为其余的api创建动态查询.所以基本上我想做的事情如下:
myHost/myApp/data/search/all?name=me&age=20&address=myhome&etc=etc
Run Code Online (Sandbox Code Playgroud)
所以我在下面创建了查询:
@Query("Select t from Data t " +
"where " +
"t.name like :name AND " +
"t.age = :age AND " +
"t.address = :address AND " +
"t.etc= :etc"
@RestResource(path = "all", rel = "all")
Page findByAll(@Param("name") String name, @Param("age") String age,
@Param("address") String address, @Param("etc") String etc, Page page);
Run Code Online (Sandbox Code Playgroud)
显然其中一些可能尚未输入.有没有办法在存储库中定义默认值?所以例如我想要name一个默认值%.
我不完全确定这种方法对于我想要做的是正确的,所以欢迎任何替代建议.
小智 7
我知道这是旧的,但我遇到了类似的问题并解决了如下问题:
@Query("Select t from Data t " +
"where " +
"(:name IS NULL or t.name like :name) AND " +
"(:age IS NULL or t.age = :age) AND " +
"(:address IS NULL or t.address = :address) AND " +
"(:etc IS NULL or t.etc= :etc)")
@RestResource(path = "all", rel = "all")
Page findByAll(@Param("name") String name, @Param("age") String age,
@Param("address") String address, @Param("etc") String etc, Page page);
Run Code Online (Sandbox Code Playgroud)