По заданному типу я хочу получить данные из того или иного отчета. Вот что я придумал:
if (type.equals("first")) {
codes = firstRepository.findAll().stream()
.map(numbers::getCode)
.collect(Collectors.toList());
} else {
codes = secondRepository.findAll().stream()
.map(numbers::getCode)
.collect(Collectors.toList());
}
Теперь я ищу элегантное решение для удаления дублирования кода.
Что-то вроде этого ?
codes = (type.equals("first") ? firstRepository : secondRepository).findAll().stream()
.map(numbers::getCode)
.collect(Collectors.toList());
Я бы предпочел добавить метод в оба репозитория, чтобы вместо этого возвращать все коды в виде списка:
public interface FirstRepository extends JpaRepository<Long, First>
{
List<First> findAllByCode();
}
public interface SecondRepository extends JpaRepository<Long, Second>
{
List<Second> findAllByCode();
}