Короче, нет. Вы не можете заставить компилятор «связать переменную с дочерним интерфейсом».
Компилятор Java должен уметь определять все значения аннотаций во время компиляции. Нужно записать в файл класса ItemRepository
константное значение для аннотации @Query
. Какое постоянное значение вы представляете для своего кода?
Как это бывает, компилятор может определить из вашего кода значение для этой аннотации во время компиляции. Однако это не совсем то значение, которое вы хотите. (Я предполагаю, что вы случайно пропустили модификатор static
из поля type
в ItemRepository
- я полагаю, что ваш код не скомпилируется иначе. Он также не скомпилируется, если вы замените поле type
с getType()
методом.)
Ваш код выглядит так, как будто он может определять во время компиляции значения аннотаций для подынтерфейсов. Проблема в том, что не можно определить во время компиляции значение аннотации для суперинтерфейса ItemRepository
.