【问题标题】:Spring Data JPA RepositoriesSpring Data JPA 存储库
【发布时间】:2013-09-18 18:58:43
【问题描述】:

我有一个类似的存储库定义

public interface UserRepository extends CrudRepository<User, Long> {}

在我的 Spring 上下文文件中

<jpa:repositories base-package="my.package"/>

然后我尝试做类似的事情

new Repositories(applicationContext).getRepositoryFor(User.class);

但我得到了错误

带有签名的方法“getRepositoryFor” “(Ljava/lang/Class;)Lorg/springframework/data/repository/CrudRepository;” 不适用于此对象

有人知道我做错了什么吗?

【问题讨论】:

  • domainClassevaluates to User.class?
  • 是的。我复制/粘贴了我的代码。现在我编辑了问题以清楚地反映这一点。

标签: java spring jpa spring-data spring-data-jpa


【解决方案1】:

这感觉更像是 Spring Data JPA 模块和 Spring Data Commons 之间的版本不兼容。确保您使用从您使用的 Spring Data JPA 版本的pom.xml 引用的 Spring Data Commons 版本。或者,更好的是:根本不声明对 Spring Data Commons 的依赖。

【讨论】:

    【解决方案2】:

    我已经看到了这个问题。正如 Oliver 所说,这是 Spring Data JPA 和 Spring Data Commons 之间的版本不兼容。

    Repositories.getRepositoryFor() 的一个版本返回一个CrudRepository,另一个返回一个Object大概是为了容纳PagingAndSortingRepository以容纳Repository。 [根据下面 Oliver 的评论进行编辑。]

    【讨论】:

    • 有点:)。为了使 Spring Data REST 能够与仅实现 Repository 的存储库一起使用,我们必须删除 CrudRepository 的返回类型并回退到普通的 Object
    • 哦,是的,有道理。
    猜你喜欢
    • 1970-01-01
    • 2018-08-06
    • 2016-12-26
    • 1970-01-01
    • 2018-10-06
    • 2018-06-15
    • 1970-01-01
    • 2015-10-06
    • 2012-04-12
    相关资源
    最近更新 更多