java吧 关注:1,283,534贴子:12,804,347
  • 4回复贴,共1

有关Spring和Hibernate整合的问题 很小的说!!!帮忙解决下

只看楼主收藏回复

用一个表整合练习一下事物 然后出现以下问题求解决!


IP属地:陕西1楼2017-04-17 02:04回复
    applicationContext.xml配置如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    ">
    <bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
    value="oracle.jdbc.driver.OracleDriver">
    </property>
    <property name="url"
    value="jdbc:oracle:thin:@localhost:1521:orcl">
    </property>
    <property name="username" value="empdb"></property>
    <property name="password" value="java"></property>
    </bean>
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">
    org.hibernate.dialect.Oracle9Dialect
    </prop>
    </props>
    </property>
    <property name="mappingResources">
    <list>
    <value>com/yxh/po/Bank.hbm.xml</value></list>
    </property></bean>
    <bean id="BankDAO" class="com.yxh.dao.BankDAO">
    <property name="sessionFactory">
    <ref bean="sessionFactory" />
    </property>
    </bean>
    <context:annotation-config/>
    <context:component-scan base-package="com.yxh"/>
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <tx:annotation-driven transaction-manager="txManager"/>
    </beans>


    IP属地:陕西2楼2017-04-17 02:04
    回复
      2025-10-18 23:47:49
      广告
      不感兴趣
      开通SVIP免广告
      问题如下:
      log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
      log4j:WARN Please initialize the log4j system properly.
      Exception in thread "main" org.springframework.dao.InvalidDataAccessResourceUsageException: could not load an entity: [com.yxh.po.Bank#1]; SQL [select bank0_.bid as bid0_0_, bank0_.uname as uname0_0_, bank0_.acount as acount0_0_ from EMPDB.BANK bank0_ where bank0_.bid=?]; nested exception is org.hibernate.exception.SQLGrammarException: could not load an entity: [com.yxh.po.Bank#1]
      at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:629)
      at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
      at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
      at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
      at org.springframework.orm.hibernate3.HibernateTemplate.get(HibernateTemplate.java:532)
      at org.springframework.orm.hibernate3.HibernateTemplate.get(HibernateTemplate.java:526)
      at com.yxh.dao.BankDAO.findById(BankDAO.java:69)
      at com.yxh.biz.BankBiz.findById(BankBiz.java:32)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
      at $Proxy11.findById(Unknown Source)
      at com.yxh.test.Test.main(Test.java:15)
      Caused by: org.hibernate.exception.SQLGrammarException: could not load an entity: [com.yxh.po.Bank#1]
      at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
      at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
      at org.hibernate.loader.Loader.loadEntity(Loader.java:1899)
      at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:71)
      at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:65)
      at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3062)
      at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:434)
      at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:415)
      at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:165)
      at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:223)
      at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:126)
      at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:906)
      at org.hibernate.impl.SessionImpl.get(SessionImpl.java:843)
      at org.springframework.orm.hibernate3.HibernateTemplate$2.doInHibernate(HibernateTemplate.java:538)
      at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
      ... 17 more
      Caused by: java.sql.SQLException: ORA-00904: "BANK0_"."BID": 标识符无效
      at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
      at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
      at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
      at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
      at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:830)
      at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391)
      at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672)
      at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
      at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527)
      at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
      at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
      at org.hibernate.loader.Loader.getResultSet(Loader.java:1812)
      at org.hibernate.loader.Loader.doQuery(Loader.java:697)
      at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
      at org.hibernate.loader.Loader.loadEntity(Loader.java:1885)
      ... 29 more


      IP属地:陕西3楼2017-04-17 02:05
      回复
        数据库如下:


        IP属地:陕西4楼2017-04-17 02:09
        回复


          跟实体类映射有关吧,仔细检查下。


          IP属地:四川5楼2017-04-17 20:21
          回复