当前位置: 首页 > 知识库问答 >
问题:

找不到类型的属性。。。自定义Spring数据存储库

蒙勇
2023-03-14

我试图实现一个自定义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所在的包(及其子包)。

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

组织。springframework。数据映射。PropertyReferenceException:找不到类型用户的属性筛选器!

共有3个答案

锺离慈
2023-03-14

CustomRepository中的customMethod()是否必须仅定义以下参数:

1.实体类名称-customMethod(用户)

2.实体类属性-customMethod(stringfirstName),这里firstName是用户实体类的属性。

如果没有像customMethod(CustomCriteria)这样的东西,criteria类包含用于构造动态查询的各种属性。

e、 g.getStatusByCriteria(CustomCriteria),CustomCriteria是一个用@Component注释的简单pojo,以便spring识别它。

当我尝试这个我得到一个错误:

组织。springframework。数据映射。PropertyReferenceException:找不到类型UserRepository的属性条件!

谷泽宇
2023-03-14

如果在Spring配置中没有拾取FilterRepositoryCustom的impl类,则会发生此错误的另一种方式:

@EnableJpaRepositories(basePackageClasses = {RepoPackageMarker.class, FilterRepositoryCustomImpl.class})
利永年
2023-03-14

这里的问题是您正在创建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数据2。x更新
这个答案是为Spring 1编写的。x、 正如Matt Forsythe所指出的,命名期望随着Spring数据2.0的出现而改变。实现从带有附加Impl后缀的最终存储库接口更改为带有附加Impl后缀的自定义接口名

所以在这种情况下,实现的名称是:UserRepositoryCustomImpl

 类似资料:
  • 问题内容: 我正在尝试实现自定义Spring存储库。我有界面: 实现: 和“主”存储库,扩展了我的自定义存储库: 根据文档,我正在使用Spring Boot : 运行我的应用程序时,出现以下错误: 问题答案: 这里的问题是你正在创建,但正在中使用它。你需要进行创建才能完成这项工作。 阅读此文档以获取更多详细信息 基本上 Spring Data 2.x更新 此答案是为Spring 1.x编写的。正如

  • 我正在尝试实现一个自定义的 Spring 存储库。我有界面: 其中RataEntity类是 它的实施 和以下存储库类 当我运行我的应用程序时,我得到这个错误: 未能创建方法公共摘要的查询java.util.Listit.aubay.PreliosPAN.repositories.RataRepositoryCustom.getRateFromTipo频率zaRimborso(java.lang.字

  • 我有一个媒体实体,它有一些用户上传的文件的基本字段。为了保存上传的文件字节,我想创建一个自定义存储库来保存该功能。按照Spring留档中的步骤,我创建了如下界面: 然后我为这个接口提供了一个实现,叫做 然后,我创建了以下界面: 现在,当我启动服务器时,我得到以下堆栈跟踪: 我发现了这篇类似的帖子,但其中的建议(都在同一个包中,命名约定)是我已经在做的事情。我所有的媒体类和接口都在同一个包中,我使用

  • 我正在使用,我正在尝试组合存储库以便能够使用自定义存储库。我认为我已经正确地遵循了20.8.7创建存储库和其他类似SO问题中指定的命名约定。 总之,我做错了一些事情,因为我得到了这个 异常消息 用户实体 存储库(都在同一个包中) 服务 新4j配置

  • 我需要在ServiceImpl中准备一个查询,因为根据某些逻辑,查询可能会有不同。柱子的。因此,我决定准备一个自定义JPA存储库,但遇到了一些错误。 我不知道为什么我会犯以下错误