Я пытаюсь реализовать метод с использованием составного репозитория в 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")