1

我有一个存储库定义,例如

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

在 Spring 上下文文件中,我有

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

然后我尝试做类似的事情

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

但我得到了错误

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

有谁知道我做错了什么?

4

2 回答 2

2

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

于 2013-09-22T07:34:35.790 回答
2

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

一个版本Repositories.getRepositoryFor()返回 a CrudRepository,另一个返回 a Object大概是为了适应PagingAndSortingRepository适应Repository。[根据下面奥利弗的评论编辑。]

于 2013-09-22T07:37:56.257 回答