Spring Data JPA存储库

时间:2013-09-18 18:58:43

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

我有一个像

这样的存储库定义
public interface UserRepository extends CrudRepository<User, Long> {}

在Spring上下文文件中我有

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

然后我尝试做类似

的事情
new Repositories(applicationContext).getRepositoryFor(User.class);

但我收到了错误

  

方法&#34; getRepositoryFor&#34;签名   &#34;(Ljava /郎/类;)Lorg / springframework的/数据/库/ CrudRepository;&#34;   不适用于此对象

有谁知道我做错了什么?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

我见过这个问题。正如Oliver所说,这是Spring Data JPA和Spring Data Commons之间的版本不兼容。

Repositories.getRepositoryFor()的一个版本返回CrudRepository,另一个版本返回Object可能是为了容纳PagingAndSortingRepository 以容纳Repository }。 [根据奥利弗的评论编辑。]