我有一个Spring Boot + DocumentDB应用程序,我们需要在其中实现搜索API,搜索字段是嵌套Json的一部分,如下所示:
{
"id":"asdf123a",
"name":"XYZ",
add{
"city":"ABC"
"pin":123456,
}
}
我需要使用name =“ XYZ”和city =“ ABC”进行搜索,我正在尝试使用以下代码,但以某种方式无法检索记录。 但是我只能使用名称或ID进行检索,而不能使用名称和城市或仅作为嵌套JSON一部分的城市进行检索。
Employee{
private String id;
private String name;
private Address add
/*Getter and Setters {} */
}
Address{
private String city;
private Long pin;
/*Getter and Setters {} */
}
public class EmployeeController {
EmployeeRepository repository;
@Autowire
EmployeeController (EmployeeRepository repository){
this.repository = repository;
}
@GetMapping(value = "/search", produces = APPLICATION_JSON_VALUE_WITH_UTF8)
public ResponseEntity<?> Search (@RequestParam ("name")String name,
@RequestParam("city") String city){
return new ResponseEntity <> (repository
.findByNameLikeAndAddressCityLike(
name, city),
HttpStatus.OK
);
}
}
@Repository
public interface EmployeeRepository extends DocumentDbRepository<Employee,
String> {
Optional<Employee>findByNameLike(String name); // Perfectly working
Optional<Employee>findByAddressCityLike(String city); // Not working
Optional<Employee>findByNameLikeAndAddressCityLike(String name, String
city); // Not Working
}
也像Spring JPA一样,我们使用@Query触发自定义/本机查询,如果有的话,是否存在任何DocumentDB注释,请通过示例或文档指导我。寻找帮助