NoSuchBeanDefinitionException : 没有定义名为 'transactionManager' 的 bean



我正在使用spring和hibernate开发一个应用程序。

当我运行我的应用程序时,我得到这个错误消息:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager' is defined

在我的上下文应用程序文件中,我有这个:

<bean id="tansactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"></property>
</bean>

我在谷歌上搜索了这个问题,我找到了一个解决方案,我必须改变这一行:

<bean id="tansactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
由:

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">

但是我有另一个问题:

org.springframework.beans.NotWritablePropertyException: Invalid property 'sessionFactory' of bean class [org.springframework.orm.jpa.JpaTransactionManager]: Bean property 'sessionFactory' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

如何解决这个问题?

你有一个错别字在你的注释" ttransactionmanager "丢失和'r', "transactionManager"。

如果您正在使用会话工厂,那么这应该可以工作

<bean id="tansactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"></property>
</bean>

但是如果您想使用JPA EntityManager,那么您需要

    <bean name="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
             <property name="entityManagerFactory" ref="entityManagerFactory"/>
    </bean>

请参考migrate -to-spring- 3-1-1和hibernate-4-1,其中包含所需配置的示例

相关内容

  • 没有找到相关文章

最新更新