映射异常说,无法实例化id生成器。为什么这个例外?

时间:2013-06-25 11:56:08

标签: java hibernate one-to-many hibernate-mapping

在尝试为one to manyPerson类实现Address映射时,我收到以下异常:org.hibernate.MappingException: could not instantiate id generator

我不知道原因。我得到这个例外的原因是什么?

<class name="pojo.Person" table="person">
      <id name="personID" column="p_id">
          <generator class="increment" />
      </id>
      <property name="personName" column="p_name" />
      <set name="addressSet" table="address" cascade="all"> 
          <key column="p_id" />
          <one-to-many class="pojo.Address" />
      </set>
</class>


<class name="pojo.Address" table="address">
      <id name="a_id" column="a_id">
          <generator class="foreign" />
      </id>
      <property name="personAddress" column="p_address" />
</class>

创建表的SQL:

CREATE TABLE person(p_id INTEGER,p_name TEXT,PRIMARY KEY(p_id));
CREATE TABLE address(a_id INTEGER,p_address TEXT);

注意:一个人可以拥有多个地址

1 个答案:

答案 0 :(得分:2)

您需要在地址实体的键中将生成器类从foreigner更改为increment。有关详细信息,请参阅this answer我已经提到过的内容。