java代码
ApplicationContext aContext=new ClassPathXmlApplicationContext("applicationContext.xml");
SessionFactory sf=(SessionFactory) aContext.getBean("sessionFactory");
Session s=sf.openSession();
Employee em=new Employee("hha","fekaol",new java.util.Date(),23f);
Transaction tx=s.beginTransaction();
s.save(em);
tx.commit();xml:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >     <hibernate-mapping package="com.ypp.domain">
     <class table="Employee" name="Employee" >
      <id  name="id"   type="java.lang.Integer">
    <generator class="native">
     </generator> 
      </id>
      <property name="email">
      <column name="email" length="64"/>
      </property>
      <property name="hireDate" type="java.util.Date">
      <column name="hireDate"></column>
      </property>
      <property name="name" type="java.lang.String">
      <column name="name" ></column>
      </property>
      <property name="salary" type="java.lang.Float"></property>
     </class>
     </hibernate-mapping>applicationContext.xml:
<beans xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-2.5.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://www.springframework.org/schema/beans"> 
<bean id="SserviceTest" class="com.ypp.test.SS">
<property name="name" value="ypp"></property>
</bean>
<!-- 配置数据源 -->
 <bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource" destroy-method="close"> <property value="oracle.jdbc.driver.OracleDriver" name="driverClassName"/> <property value="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" name="url"/> <property value="scott" name="username"/> <property value="tiger" name="password"/> 
<!-- 连接池启动时的初始值 -->
 <property value="30" name="initialSize"/> 
<!-- 连接池的最大值 -->
 <property value="500" name="maxActive"/> 
<!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
 <property value="2" name="maxIdle"/> 
<!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
 <property value="1" name="minIdle"/> </bean>
 
 <!-- 配置会话工厂() -->
 <bean class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" id="sessionFactory"> 
<!-- 设置数据源 -->
 <property name="dataSource" ref="dataSource"/> 
<!-- 接管了hibernate对象映射文件 -->
 <property name="mappingResources"> 
 <list> 
 <value>com/ypp/domain/Employee.hbm.xml</value>  </list> 
 </property> 
 <property name="hibernateProperties"> 
 <value> hibernate.dialect=org.hibernate.dialect.OracleDialect
 hibernate.hbm2ddl.auto=create hibernate.show_sql=true 
 hibernate.cache.use_second_level_cache=true 
 hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider 
 hibernate.generate_statistics=true </value> 
 </property> 
 </bean>
</beans>错误提示:
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.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at com.ypp.test.test.main(test.java:25)
Caused by: java.sql.BatchUpdateException: ORA-00942: 表或视图不存在 at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10656)
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 8 more

解决方案 »

  1.   

    是不是没有建oralce表的主键sequence
      

  2.   

    Caused by: java.sql.BatchUpdateException: ORA-00942: 表或视图不存在 table="Employee"名字为红色字的表存在吗?
      

  3.   

    Caused by: java.sql.BatchUpdateException: ORA-00942: 表或视图不存在
    错误说的很清楚呀,包是否存在,或者说你配置的table的name是否正确。
      

  4.   

    围观一下,oracle反馈上来的信息应该再带上所谓不存在的表或视图名才更合理到位~
      

  5.   

    没有建oralce表Employee,去数据库创建下即可
      

  6.   

     hibernate.hbm2ddl.auto=createhibernate 不会自动创建么?
      

  7.   

    hibernate.hbm2ddl.auto=createhibernate 不会自动创建么? 
      

  8.   

    hibernate.hbm2ddl.auto=createhibernate 不会自动创建么? 
      

  9.   

    有createhibernate吗?我看到只有4种
    validate | update | create | create-drop
      

  10.   

    hibernate.hbm2ddl.auto=createhibernate
    如楼上所说,还有最好把schema或者catalog加上。
      

  11.   

    Caused by: java.sql.BatchUpdateException: ORA-00942: 表或视图不存在
    表不存的问题吧。
    hibernate.hbm2ddl.auto=create
    这个是第一次使用时候用create,在以后时候都要使用update,不然会有问题!