我正在尝试使用 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.
我尝试在 EmployeeRepositoryCustom 和 EmployeeRepositoryCustomImpl 上添加注释 @Repository,但它仍然给出相同的错误消息。有没有办法做到这一点?
我知道我可以只注入 EmployeeRepositoryCustom 类并访问该方法,但我想使用可组合存储库方法来做到这一点。因为,员工存储库来自另一个模式(不是默认数据源,而是另一个数据源),我希望能够指定如下模式:
@Repository("schema2")