【问题标题】:NoSuchBeanDefinitionException : No bean named 'transactionManager' is definedNoSuchBeanDefinitionException:没有定义名为“transactionManager”的 bean
【发布时间】:2014-06-17 21:41:17
【问题描述】:

我正在使用 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?

我该如何解决这个问题?

【问题讨论】:

  • 发布完整的堆栈跟踪。
  • 你使用 jpa 和 hibernate 吗?如果您使用 jpa,则必须将 sessionFactory 更改为 entityManagerFactory。
  • 第一种方法失败的原因仅仅是因为 bean ID 中的拼写错误。

标签: eclipse spring transactionmanager


【解决方案1】:

您的注释中有错字“tansactionManager”丢失,并且“r”、“transactionManager”。我进行了更正,对我来说效果很好。

【讨论】:

    【解决方案2】:

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

    <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>
    

    请参考migrating-to-spring-3-1-and-hibernate-4-1 它包含所需配置的好示例

    【讨论】:

      猜你喜欢
      • 2012-05-29
      • 2012-11-20
      • 2015-04-17
      • 1970-01-01
      • 2015-05-05
      • 2018-01-05
      • 2016-06-09
      • 1970-01-01
      • 2018-05-25
      相关资源
      最近更新 更多