1

在尝试实现one to many类映射时PersonAddress我得到以下异常: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);

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

4

1 回答 1

2

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

于 2013-06-25T15:28:04.147 回答