Обновление : следующее использует Spring Boot 2.1.0
У меня есть репозиторий Spring Data, и я пытаюсь предоставить ему некоторые пользовательские функции, следуя примеру фрагментов из документации .
Итак, я добавил дополнительный интерфейс в хранилище:
public interface UserRepository extends JpaRepository<User, Long>, UserExtraLogic {
User findByFirstNameAndLastName(String firstName, String lastName);
}
с этим пользовательским интерфейсом:
interface UserExtraLogic {
void ensureHasAccess();
}
и его реализация:
class UserExtraLogicImpl implements UserExtraLogic {
public void ensureHasAccess() {
}
}
Проблема в том, что я хотел бы иметь возможность использовать свои репозитории внутри UserExtraLogicImpl
, чтобы я мог повторно использовать методы запросов, такие как findByFirstNameAndLastName
, без необходимости писать их самостоятельно с помощью EntityManager
. Итак, я попробовал это:
class UserExrtaLogicImpl implements UserExtraLogic {
@Autowired
private UserRepository userRepository;
}
Но тогда приложение не запускается. Я получаю исключение NullPointerException, но я думаю, что Spring просто начинает цикл, пытаясь разрешить эти зависимости.
Возможно ли то, что я пытаюсь сделать? Есть ли другой способ сделать это?