«Не удалось разрешить ссылку на компонент против BeanFactory» с аннотацией spEl - PullRequest
0 голосов
/ 01 июня 2019

Я пытаюсь запрограммировать на следующие 7 дней. До того, как я использовал dateadd в своем запросе, я использую базу данных mysql, и она не работает,

Поэтому я попытался использовать аннотацию spEl, но у меня есть эта ошибка:

'Не удалось разрешить ссылку на beanFactory в BeanFactory'

У вас есть решение этой проблемы или альтернатива, чтобы получить тот же результат?

public interface ProgrammationRepository extends JpaRepository<Programmation, Long> {
    @Query("select programmation from Programmation programmation left join fetch programmation.film where programmation.dateprogrammation >= ?#{@ProgrammationRepository.addSixDay()} and programmation.dateprogrammation <= ?#{@ProgrammationRepository.addSevenDay()}")
    List<Programmation> getSevenNextDay();

    @Query("select programmation from Programmation programmation left join fetch programmation.film where programmation.film.id = :id")
    List<Programmation> getFindByFilm(@Param("id") Long id);

    default Instant addSixDay() {
        System.out.println( Instant.now().plus(6, ChronoUnit.DAYS));
        return Instant.now().minus(6, ChronoUnit.DAYS);
    }

    default Instant addSevenDay() {
        return Instant.now().plus(7, ChronoUnit.DAYS);
    }

Привет

1 Ответ

0 голосов
/ 01 июня 2019
#{@ProgrammationRepository.addSevenDay()}

Приведенный выше SpEL означает, что он найдет бин с именем ProgrammationRepository и вызовет его метод addSevenDay().

Тем не менее, имя ProgrammationRepository bean-компонента p rogrammationRepository, но не P rogrammationRepository (по умолчанию имя пружинного бина является lowerCamelCase имени класса). Измените SpEL к следующему следует решить проблему:

#{@programmationRepository.addSevenDay()}

В качестве альтернативы, вы можете изменить имя компонента ProgrammationRepository на ProgrammationRepository:

@Repository(value = "ProgrammationRepository")
public interface ProgrammationRepository extends JpaRepository<Programmation, Long> {

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...