搞了大半夜,搞不掂,来个前辈帮忙解决下吧。
业务层配置:<bean id="userManager" class="com.spring.manager.UserManagerImpl">
<property name="logManager" ref="logManager"/>
<property name="sessionFactroy" ref="sessionFactroy"/>
</bean>

<bean id="logManager" class="com.spring.manager.LogManagerImpl">
<property name="sessionFactroy" ref="sessionFactroy"/>
</bean>
<!-- 配置SessionFactroy -->
<bean id="sessionFactroy" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>

<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactroy">
<ref bean="sessionFactroy"/>
</property>
</bean>

<!-- 配置事务的传播特性 -->
<tx:advice id="tdAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="delet*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>

<!-- 配置哪些类哪些方法使用事务 -->
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* com.spring.manager.*.*(..))"/>
<aop:advisor advice-ref="tdAdvice" pointcut-ref="allManagerMethod"/>
</aop:config>hibernate配置:
           <session-factory>        <!-- Database connection settings -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/student</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>        <!-- JDBC connection pool (use the built-in) -->
        <!--  <property name="connection.pool_size">1</property>  -->        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">update</property>         <!-- <mapping resource="com/test/bean/Student.hbm.xml"/> -->
        <mapping class="com.spring.model.User"/> 
        <mapping class="com.spring.model.Log"/> 
实体类用的是annotation注解的方式,就是两个简单是id名字的属性,然后运行一直报下面的错误:Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactroy' defined in file [D:\workspace\spring_hibernate_1\bin\applicationContext-common.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="com.spring.model.User"/>
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1337)2010-10-21 01:22:11,204 INFO [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@a17083: defining beans [sessionFactroy,transactionManager,tdAdvice,org.springframework.aop.config.internalAutoProxyCreator,allManagerMethod,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0,userManager,logManager]; root of factory hierarchy at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.spring.manager.Client.main(Client.java:16)
Caused by: org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="com.spring.model.User"/>
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1648)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1603)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1582)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1556)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1491)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:601)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334)
... 15 more
初学找不到解决办法,望各位前辈指点指点了,先谢谢了哭

解决方案 »

  1.   


    <!-- 配置SessionFactroy -->
    <bean id="sessionFactroy" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    换成<!-- 配置SessionFactroy -->
    <bean id="sessionFactroy" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
      

  2.   

    不行啊,org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean 找不到这个包  我的spring是2.5.5的    hibernate是3.3.2的   是不是版本对不上啊?
      

  3.   

    还是换了后<property name="configLocation">
    这个属性输入也得换了?这个包找不到源码,不能进去看要注入的是哪个属性