当前位置: 首页 > 面试题库 >

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

慕飞章
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所在的包(及其子包)中查找。

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

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存储库。我有接口: 实施: 和“主”存储库,扩展我的自定义存储库: 我使用的是Spring Boot,根据文档: 默认情况下,Spring Boot将启用JPA存储库支持,并查看@SpringBootApplication所在的包(及其子包)。 当我运行应用程序时,出现以下错误: 组织。springframework。数据映射。PropertyReferenceEx

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

  • 您好,我正在建立一个动物园微服务,包括动物、员工、客户和价格表。我的动物微服务可以工作,但在我的员工微服务中,我遇到了一个错误,即没有为类型“EmployeeModel”找到属性“name”。在问这个问题之前,我已经在网上搜索了几个小时,还有一些类似的问题。我在模型中没有“名字”employee_name,我只是感到困惑,不知道如何修复它。任何指导/建议/信息将不胜感激:)第一次发布,所以我希望我

  • 我有以下实体: 然后我创建我的存储库: 但我一开始就收到: 未找到MyTable类型的属性getCountOf 我到底做错了什么?

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