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

我正在尝试实现自定义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才能完成这项工作。

阅读此文档以获取更多详细信息

基本上

public interface UserRepositoryCustom {

List<User> filterBy(String role);

}

public class UserRepositoryImpl implements UserRepositoryCustom {

...

}

public interface UserRepository extends JpaRepository<User, String>, UserRepositoryCustom {

...

}

Spring Data 2.x更新

此答案是为Spring 1.x编写的。正如Matt Forsythe指出的那样,命名期望随着Spring Data 2.0的改变而改变。实现从更改the-final-repository-interface-name-with-an-additional-Impl-suffixthe-custom-interface-name-with-an-additional-Impl-suffix

因此,在这种情况下,实现的名称为:UserRepositoryCustomImpl

以上是 找不到类型的属性…定制的Spring Data存储库 的全部内容, 来源链接: utcz.com/qa/414990.html

回到顶部