Почему подсвечивает красным?

181
09 апреля 2019, 18:20

Почему-то MealRepository repository подчёркнут красным жалуется на то что нет имплементации, а если её добавить то нечего не меняется

@Autowired
public MealServiceImpl(MealRepository repository) {
    this.repository = repository;
}

Вот код:

@Service
public class MealServiceImpl implements MealService {
    private final MealRepository repository;
    @Autowired
    public MealServiceImpl(MealRepository repository) {
        this.repository = repository;
    }
    @Override
    public Meal get(int id, int userId) {
        return checkNotFoundWithId(repository.get(id, userId), id);
    }

    @Override
    public void delete(int id, int userId) {
        checkNotFoundWithId(repository.delete(id, userId), id);
    }
    @Override
    public List<Meal> getBetweenDateTimes(LocalDateTime startDateTime, LocalDateTime endDateTime, int userId) {
        Assert.notNull(startDateTime, "startDateTime must not be null");
        Assert.notNull(endDateTime, "endDateTime  must not be null");
        return repository.getBetween(startDateTime, endDateTime, userId);
    }
    @Override
    public List<Meal> getAll(int userId) {
        return repository.getAll(userId);
    }
    @Override
    public void update(Meal meal, int userId) {
        checkNotFoundWithId(repository.save(meal, userId), meal.getId());
    }
    @Override
    public Meal create(Meal meal, int userId) {
        Assert.notNull(meal, "meal must not be null");
        return repository.save(meal, userId);
    }
}

Вот MealRepository

import ru.javawebinar.topjava.model.Meal;
import java.time.LocalDateTime;
import java.util.List;
public interface MealRepository {
// null if updated meal do not belong to userId
Meal save(Meal meal, int userId);
// false if meal do not belong to userId
boolean delete(int id, int userId);
// null if meal do not belong to userId
Meal get(int id, int userId);
// ORDERED dateTime desc
List<Meal> getAll(int userId);
// ORDERED dateTime desc
List<Meal> getBetween(LocalDateTime startDate, LocalDateTime endDate, int userId);

}

Answer 1

Возможно, вы забыли пометить MealRepository аннотацией @Repository, если у вас включено сканирование пакетов. Если его нет, то бин MealRepository следует добавить в конфигурацию:

@Repository
public class MealRepository implements JPARepository...

или

@Bean
public MealRepository mealRepository() {
    return new MealRepository()
}
READ ALSO
Математические операции с Generics Java

Математические операции с Generics Java

есть потребность в написание, некоторых математических примитивов, наподобие векторов и матриц

148
Оператор throws и исключения

Оператор throws и исключения

Всем привет, друзья! Хотелось бы спросить: checked исключения, как я понял обязательно должны содержать оператор throws в сигнатуре метода или обрабатываться...

157
Полиморфизм и его реализации

Полиморфизм и его реализации

Хотелось бы узнать побольше про полиморфизм простыми словами и про его реализации потому что как я понял все везде спорят что нет полиморфизма,...

192
Перемещение порсонажа [закрыт]

Перемещение порсонажа [закрыт]

Всем приветНикак не могу понять как сделать перемещение персонажа из одной точки в другую

190