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