我正在尝试实现自定义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!
这里的问题是您正在创建, FilterRepositoryImpl 但正在中使用它 UserRepository 。您需要进行创建 UserRepositoryImpl 才能完成这项工作。
FilterRepositoryImpl
UserRepository
UserRepositoryImpl
基本上
public interface UserRepositoryCustom { List<User> filterBy(String role); } public class UserRepositoryImpl implements UserRepositoryCustom { ... } public interface UserRepository extends JpaRepository<User, String>, UserRepositoryCustom { ... }