Как создать бин JpaRepository - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть интерфейс:

@Repository
public interface EmpoleyeeRepository extends
        HumanRepository<Employee, Long> {
}

@NoRepositoryBean
public interface HumanRepository<T, ID> extends JpaRepository<T, ID> {}

и мой класс:

    public  class EmployeeClassWithRepositor {

        @Autowired
        private EmpoleyeeRepository employeeRepository;

        EmployeeClassWithRepositor() {
           Optional<Employee> employee = employeeRepository.findById(1L);
        }

}

Но этот репозиторий фактически нулевой. Как я могу связать его с этим классом? Вскоре создайте надлежащий компонент JpaRepository (я не хочу создавать класс с помощью этого репозитория интерфейса)

1 Ответ

0 голосов
/ 20 апреля 2019

Мое предложение:

Похоже, что вы пытаетесь реализовать шаблон Active record (каждая сущность отвечает за сохранение себя) путем обертывания сущности Jpa и внедрения репозитория в ваш объект домена.

Это очень редко практикуется весной.Вместо этого создайте класс сервиса, аннотированный @Service.Введите свой класс хранилища там.Вызовите методы репозитория для получения сущностей.

Spring внедряет объекты только в управляемые bean-компоненты.Ваш EmployeeWithRepositori не управляется, поэтому ничего не вводится

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