我尝试实现像这样的Generic DAO的解决方案。 但是对于“使用此genericDAO没有特殊实现类”的情况下,我得到NoSuchBeanDefinitionException。春天无法为“没有特殊实现类的Generic Dao”案例连接bean
完整的堆栈跟踪http://pastebin.com/HwrjEZiX
在我没有特别的实现类春季不能用于布线通用的DAO豆
https://dl.dropboxusercontent.com/u/8384811/Misc/2013-05-14_224944.jpg Spring使用JdkDynamicAopProxy布线BranchHibernateDao类,“使用这种genericDAO与专项实施类“情况。
根据JavaDoc它创建一个动态代理,实现 * AopProxy公开的接口。动态代理服务器不能使用来代理在类中定义的方法 ,而不是接口。
因此,它看到了用于branchDao bean定义的BrunchDao和Crud接口的方法。
但它不能连接branchGenericDao(“使用此genericDAO没有特殊实现类”的情况下)并没有看到Crud接口方法。
我会感谢您的任何帮助!
Bean的布线
<bean id="branchDao" class="org.jtalks.poulpe.model.dao.hibernate.BranchHibernateDao" parent="genericDao"/>
<bean id="branchGenericDao" class="org.jtalks.common.model.dao.hibernate.GenericDao">
<qualifier value="branchGenericDao"/>
<constructor-arg name="sessionFactory" ref="sessionFactory"/>
<constructor-arg name="type" value="org.jtalks.poulpe.model.entity.PoulpeBranch"/>
</bean>
<bean id="genericDao" abstract="true" class="org.jtalks.common.model.dao.hibernate.GenericDao">
<constructor-arg name="sessionFactory" ref="sessionFactory"/>
</bean>
BranchHibernateDao来源是这里https://github.com/jtalks-org/poulpe/blob/master.senleft/poulpe-model/src/main/java/org/jtalks/poulpe/model/dao/hibernate/BranchHibernateDao.java
的问题是在branchGenericDao bean类型。在测试branchGenericDao字段时,我声明了GenericDao类型(类)不是Crud类型(接口)。从GenericDao改变类型到Crud解决了这个问题。 – senleft