使用Spring SimpleJpaRepository的泛型错误“绑定不匹配”

时间:2015-03-10 16:24:19

标签: java spring generics spring-data-jpa

我正在使用Spring数据,当我尝试创建SimpleJpaRepository的bean时,编译器会给我一个错误。这是代码

@Bean
protected <domainClass, Long> SimpleJpaRepository<domainClass, **Long**> getSimpleJpaRepository(Class domainClass) {
    return new SimpleJpaRepository<>(domainClass, this.entityManager);
}

我用*标记的Long有错误:“绑定不匹配:Long类型不是SimpleJpaRepository类型的有界参数的有效替代”

然而,当我写这篇文章时我没有错误

 private SimpleJpaRepository<Client, Long> support = new SimpleJpaRepository<>(Client.class, this.entityManager);

所以,我认为Long可能没有实现Serializable,这是错误的原因,但是在最后一行我没有错误所以我假设Long实际上是在实现Serializable。

你知道如何使通用方法有效吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您使用Long作为通用类型名称,并且还提供Long作为具体类型。将名称更改为此类

@Bean
protected <DC, L> SimpleJpaRepository<domainClass, Long> getSimpleJpaRepository(Class domainClass) {
    return new SimpleJpaRepository<>(domainClass, this.entityManager);
}