У меня есть приложение 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, если так, пожалуйста, приведите мне пример или документ.Ищу помощь