Spring boot + DocumentDB пользовательский запрос для поиска документов - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть приложение Spring Boot + DocumentDB, в котором нам нужно реализовать API поиска. Поля поиска являются частью вложенного Json, как показано ниже:

{
  "id":"asdf123a",
  "name":"XYZ",
  add{
      "city":"ABC"
      "pin":123456,  
     }
 } 

Мне нужно искать с именем = "XYZ"and city =" ABC ", я пытаюсь использовать приведенный ниже код, но каким-то образом не могу получить запись.Но я могу получить только по имени или идентификатору, но не по имени и городу или просто по городу, который является частью вложенного 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, если так, пожалуйста, приведите мне пример или документ.Ищу помощь

...