org.hibernate.exception.SQLGrammarException:无法获取下一个序列值

时间:2013-09-19 12:54:17

标签: java hibernate

使用Hibernate 3.6

以下是Employee班级代码。

public class Employee {

private int id;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

以下是Employee.hbm.xml文件,

<class name="com.testing.hibernate.Employee" table="HIB_EMPLOYEE">
      <meta attribute="class-description">
            This class contains the Employee details.
      </meta>
      <id name="id" type="int" column="id">
         <generator class="sequence"></generator>
      </id>
      <property name="firstName" column="first_name" type="string"></property>
      <property name="lastName" column="last_name" type="string"></property>
      <property name="salary" column="salary" type="int"></property>            
  </class>

我在数据库中创建了序列。 SS下面供参考。我怎样才能克服我得到的异常? enter image description here

2 个答案:

答案 0 :(得分:4)

您必须将序列的引用提供给休眠。

<generator class="sequence">
     <param name="sequence">SEQUENCE_NAME</param>
</generator>

答案 1 :(得分:1)

我可以用什么注释来做到这一点?

我试过

@GeneratedValue(strategy=GenerationType.SEQUENCE , generator = <SEQUENCE_NAME>") 没有任何成功

编辑:

它接缝也必须创建发电机

@SequenceGenerator(name="<GEN_NAME>", sequenceName="<SEQUENCE_NAME>")