我用的是oracle数据库 用hibernate连接 但出现错误先说一下数据库 表emp 
deptno number primary key
comn number
sal number在程序里是这样
Configuration config=new Configuration().configure();

SessionFactory sessionFactory=config.buildSessionFactory();
Session session=sessionFactory.openSession();
Transaction tx=session.beginTransaction();Object p=session.get(Emp.class,10);
System.out.println(p);Emp person=new Emp();
person.setDeptno(11);
person.setSal(20);
person.setComn(5);
System.out.println("新增人员成功!");
session.save(person);结果可一从数据库里读出数据     emp[deptno=10;comn=20;sal=4]   新增人员成功!不能保存数据 
错误提示如下:org.hibernate.exception.SQLGrammarException: could not get next sequence value     //!!!!!!!
             Caused by: java.sql.SQLException: ORA-02289: 序列不存在                            //!!!!!!!
.hnm.xml文件是这样的
  <class name="hibernate3.object.Emp" table="EMP">
    <id name="deptno" column="deptno" type="java.lang.Integer">
     <generator class="native" />
    </id>
    <property name="comn" column="comn" type="java.lang.Integer" />
    <property name="sal" column="sal" type="java.lang.Integer" />
    </class>
数据库序列我也建过 试过很多次 例如   一个简单的   create sequence deptno start with 1;
这样在程序里还是不行 
求大手帮解决一下 我刚学hibernate 所以很多东西还不懂

解决方案 »

  1.   

    把“<generator class="native" />”
    这一句换成下面的
    <generator class="sequence">
                 <param name="sequence">
                “这里写你序列的名字”
                 </param>
       </generator>
      

  2.   

    如果有sequence应该是不会报错的..只有一个中可能.就是你配置文件里面出错了..
      

  3.   

    把配置文件里面的native改为sequence试试
      

  4.   

    person.setDeptno(11);
    Deptno既然是自增,为何还要设值呢,把这句去掉看看