以前没有怎么用过Oracle,oralce的包也导入了啊,真是想不通啊。。希望大家能帮我看看啊,谢谢啊java代码:
package com.xiaotong.taobao.bean;public class Teacher { private int id;
private String teachername; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getTeachername() {
return teachername;
} public void setTeachername(String teachername) {
this.teachername = teachername;
}
}
映射文件:***********************************************
<hibernate-mapping package="com.xiaotong.taobao.bean">
<class name="Teacher">
<id name="id">
<generator class="sequence">
<param name="sequence">Teacher_id_seq</param>
</generator>
</id>

<property name="teachername" column="teacher_name"/>
</class>
</hibernate-mapping>测试类代码:***********************************
package com.xiaotong.taobao.test;import org.hibernate.Session;
import org.hibernate.Transaction;import com.xiaotong.taobao.bean.Teacher;
import com.xiaotong.taobao.util.HibernateUtil;public class Test { /**
 * @param args
 */
public static void main(String[] args) {
add();
} public static void add(){
Teacher t = new Teacher();
t.setTeachername("xiaoqiang");
Session s = null;
Transaction trans = null;
try{
s = HibernateUtil.getSession();
trans = s.beginTransaction();
s.save(t);
trans.commit();
}catch(Exception e){
                        trans.rollback();
                        e.printStackTrace();
                  }
                   finally{
if (s != null) s.close();
}

}
}报的错:*************************************
Hibernate: 
    select
        Teacher_id_seq.nextval 
    from
        dual
Hibernate: 
    insert 
    into
        Teacher
        (teacher_name, id) 
    values
        (?, ?)
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
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:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.xiaotong.taobao.test.Test.add(Test.java:27)
at com.xiaotong.taobao.test.Test.main(Test.java:15)
Caused by: java.sql.BatchUpdateException: ORA-00942: 表或视图不存在 at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:342)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10720)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
... 9 more
其中sequence已经建好了:***********************************
SEQUENCE_NAME                   MIN_VALUE  MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
------------------------------ ---------- ---------- ------------ - - ---------- -----------
TEACHER_ID_SEQ                          1 1.0000E+17            1 N N         20          21

解决方案 »

  1.   

     ORA-00942: 表或视图不存在。与sequence无关。看看Teacher表存在吗?如果存在,你有访问权限吗?
      

  2.   

    是啊,不知道为何,大中午的升级,CSDN被和谐了这么久
      

  3.   

    在你的对象前面加上Schema看看.
      

  4.   

    1.看你的用户下有没有Teacher这个表
    2.如果是其他用户下的表加上Schema.并且在用户下grant权限给当前用户
      

  5.   

    Caused by: java.sql.BatchUpdateException: ORA-00942: 表或视图不存在 
    很明显示的一个问题哦。
    使用你的用户/密码,在pl/sql中操作一下。看能不能操作。
    一般是权限,owner问题
      

  6.   


    哇塞,真的是因为没有表啊
    这下可以了啊,谢谢啊。
    不过我在hibernate中配置文件配置了:
    <property name="hbm2ddl.auto">crate</property>
    不是应该由hibernate自动创建表的吗,在使用mysql就是这样的啊(试过很多次都是hibernate自己创建的啊)。
    为什么到Oracle就不自己创建了啊??????????????????????
      

  7.   

    没有,不过我有配置,是让hibernate自己创建的啊,为什么它不自己创建呢???????
      

  8.   

    我在hibernate下配置自动创建表的啊,怎么没用啊????????????
      

  9.   


    不懂hibernate,只听说它能映射数据结构。再说,建表完全没必要用hibernate,对数据库也不好。
      

  10.   

    我是为了与数据库操作,用hibernate比用jdbc可以省很多代码吗,偶还是很懒的,嘻嘻
    不过这次又犯了低级错误,把配置<property name="hbm2ddl.auto">create</property>
    中的create写错了,不过也不报错,写的太快了,害的大家浪费时间了啊