Создание составных репозиториев в micronaut

Я пытаюсь реализовать метод с использованием составного репозитория в micronaut.

У меня есть:

@Repository
public interface EmployeeRepository extends CrudRepository<Employee, Long>, EmployeeRepositoryCustom {
}

Здесь EmployeeRepositoryCustom - это интерфейс с методом list ():

public interface EmployeeRepositoryCustom {
    List<Employee> list();
}

Затем у меня есть класс EmployeeRepositoryCustomImpl, который реализует методы интерфейса:

public class EmployeeRepositoryCustomImpl implements EmployeeRepositoryCustom {
    @PersistenceContext
    EntityManager em;

    @Override
    @Transactional
    public List<Employee> list() {

       // implementation code
    }
}

Когда я вызываю метод, используя:

@Inject

EmployeeRepository employeeRepository;

public List<Employee> get(){
     return employeeRepository.list();
}

Я получаю следующее сообщение:

java.lang.IllegalStateException: Micronaut Data method is missing compilation time query information. Ensure that the Micronaut Data annotation processors are declared in your build and try again with a clean re-build. 


Я пробовал добавить аннотацию @Repository к EmployeeRepositoryCustom и EmployeeRepositoryCustomImpl, но по-прежнему выдает то же сообщение об ошибке. Есть ли способ сделать это?

Я знаю, что могу просто ввести класс EmployeeRepositoryCustom и получить доступ к методу, но я хочу сделать это с помощью метода составного репозитория. Потому что репозиторий сотрудников происходит из другой схемы (не из источника данных по умолчанию, а из другого источника данных), и я хотел бы иметь возможность указать схему, например:

@Repository("schema2")

person Rajshree Rai    schedule 23.02.2020    source источник


Ответы (1)


Вы не должны создавать реализацию интерфейса. Если вы хотите иметь методы с вашим собственным кодом, вы можете создать репозиторий как абстрактный класс и оставить методы, которые вы хотите реализовать, как абстрактные, а затем вы можете создавать любые конкретные методы.

person James Kleeh    schedule 27.02.2020
comment
Да, но я хотел бы использовать для этого шаблон составного репозитория. - person Rajshree Rai; 09.03.2020