У меня есть следующие запросы:
@Query(value= "{ 'agents.agentId' : ?0 }", fields = "{ '_id' : 1, 'agents' : 1}")
Optional<List<Simple>> findOptionalByAgentsAgentIdIn(List<String> agentIdList);
@Query(value= "{ 'agents.agentId' : ?0 }", fields = "{ '_id' : 1, 'agents' : 1}")
Optional<List<Simple>> findOptionalByAgentsAgentId(String agentId);
Первый возвращает пустой массив каждый раз, а второй возвращает правильный json
@Data
public class Simple {
String id;
List<AppAgent> agents;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AppAgent {
private String agentName;
private String agentId;
}
выше мой простой объект и ниже мой метод контроллера
@GetMapping(value = { "/apps/{agentIds}", "/apps/{agentId}" })
public ResponseEntity<RestResult<List<Simple>>> getAllApplicationsByAgentIds(
@PathVariable Optional<List<String>> agentIds, @PathVariable Optional<String> agentId) {
Optional<List<Simple>> documents = Optional.empty();
if (agentId.isPresent()) {
documents = appStatusService.getAllByAgentId(agentId.get());
} else if (agentIds.isPresent()) {
documents = appStatusService.getAllByAgentIds(agentIds.get());
}
ResponseEntity<RestResult<List<Simple>>> response;
if (!documents.get().isEmpty()) {
response = new ResponseEntity<>(RestResult.success(documents.get()), HttpStatus.OK);
} else {
response = new ResponseEntity<>(RestResult.<List<Simple>>noResult(), HttpStatus.NOT_FOUND);
}
return response;
}
Сервис просто вызывает методы репозитория. что-то не так в моем синтаксисе? Он возвращается, говоря, что никаких результатов от отдыха, как и следовало ожидать в моем предложении else