一尘不染

找不到类型的属性...定制的Spring Data存储库

spring-boot

我正在尝试实现自定义Spring存储库。我有界面:

public interface FilterRepositoryCustom {
    List<User> filterBy(String role);
}

实现:

public class FilterRepositoryImpl implements FilterRepositoryCustom {
...
}

和“主”存储库,扩展了我的自定义存储库:

public interface UserRepository extends JpaRepository<User, String>, FilterRepositoryCustom {
...
}

根据文档,我正在使用Spring Boot :

默认情况下,Spring Boot将启用JPA存储库支持,并在@SpringBootApplication所在的包(及其子包)中查找。

运行应用程序时,出现以下错误:

org.springframework.data.mapping.PropertyReferenceException:未找到针对User类型的属性filterBy!


阅读 241

收藏
2020-05-30

共1个答案

一尘不染

这里的问题是您正在创建, FilterRepositoryImpl 但正在中使用它 UserRepository 。您需要进行创建
UserRepositoryImpl 才能完成这项工作。

基本上

public interface UserRepositoryCustom {
    List<User> filterBy(String role);
}

public class UserRepositoryImpl implements UserRepositoryCustom {
...
}

public interface UserRepository extends JpaRepository<User, String>, UserRepositoryCustom {
...
}
2020-05-30