泛型错误 "bound dismatch" 使用 Spring SimpleJpaRepository

Generics error "bound dismatch" using Spring SimpleJpaRepository

我正在使用 Spring 数据,当我尝试创建 SimpleJpaRepository 的 bean 时,编译器将我标记为错误。这是代码

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

我用*标记的Long有错误:"Bound dismatch: the type Long is not a valid substitute for the bounded parameter of the type SimpleJpaRepository"

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

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

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

你知道我必须怎么做才能使通用方法起作用吗?谢谢!

您正在使用 Long 作为通用类型名称,并且您还提供了 Long 作为具体类型。将名称更改为类似这样的名称

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