我正在尝试实现一个通用的 DAO,但我遇到了一个问题......
这是我的问题:
public class ClassA<T,P,S> extends JpaRepository<T, Integer>{
dostuff<P,S>(){...}
}
@Autowired
private ClassA<BeanA,BeanB,BeanC> classA;
此时,我在编译时收到此错误:
Error creating bean with name 'ClassA': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Not an managed type: interface java.lang.Object
根据我在这个网站上看到的内容,Spring 4.0 应该可以完成这些工作,但我正在使用 Spring 3.1 并且无法升级......
也许我的测试可以帮助您回答我的问题:
public class ClassA extends JpaRepository<BeanA, Integer>{
dostuff<BeanB,BeanC>(){...}
}
@Autowired
private ClassA classA;
和
public class ClassA<T extends BeanA,P extends BeanB, S extends BeanC> extends JpaRepository<T, Integer>{
dostuff<P,S>(){...}
}
@Autowired
private ClassA<BeanA,BeanB,BeanC> classA;
工作得很好。
提前感谢您的建议;)
最佳答案
例如,尝试通过为指定存储库显式指定限定符来 Autowiring
@Autowired
@Qualifier("classA")
private ClassA<BeanA,BeanB,BeanC> classA;
关于java - Spring 3.1 Autowiring 具有多个泛型参数的泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28547210/