Преобразовать данные из MongoDB

123
29 июня 2019, 22:30

Есть класс Person, в нем есть поле name. Я записываю эти данные в Mongo, но на выходе, хочу получать не записанные по 1-у классы, а все поля name из них, но в List<String>. Вот код

@RestController
public class Post_Get {
    @Autowired
    private PersonRepository personRepository;
    private List<String> persons = new ArrayList<>();
    @PostMapping("api/names")
    public void post (@RequestParam("username") String name) {
        Person person = new Person(name);
        personRepository.save(person);
    }
    @GetMapping("api/names")
    public List<Person> get () {
        return personRepository.findAll();
    }
}
Answer 1
@GetMapping("api/names")
public List<String> getNames() {
    return personRepository.findAll()
                           .stream()
                           .map(Person::getName)
                           .filter(Objects::nonNull)
                           .collect(Collectors.toList());
}

Или без лишней конвертаций

public interface PersonRepository extends Repository<Person, Long> {
    Stream<Person> findByNameNotNull();
}
@GetMapping("api/names")
public List<String> getNames() {
    return personRepository.findByNameNotNull()
                           .map(Person::getName)
                           .collect(Collectors.toList());
}
READ ALSO
хочу понять принцип как сработал код

хочу понять принцип как сработал код

я вот хочу дебажить но при открытии дебага показывает только результат в консоли но кнопочки у дебага не активныеэто один из вопросов

132
RuntimeException: Unable to resume activity

RuntimeException: Unable to resume activity

Проблема в том, что в onPause вы ставите camera = null;, а потом в onResume пытаетесь открыть camera = Cameraopen(); Естественно, оно падает

120
Полиморфизм Java

Полиморфизм Java

Когда я переопределяю метод из базового класса с помощью @Override - это статическое связывание, а когда без - динамическоеПравильно ли я понимаю?

146