无法在两个班级之间建立“一对一”的关系

时间:2013-06-22 09:27:39

标签: java hibernate java-ee hibernate-mapping

我应该在以下xml中做些什么才能在one-to-one班级和Country班级之间建立PM关系?

  <class name="pojo.Country" table="country">
      <id name="c_id">
          <generator class="increment" />
      </id>
      <property name="name_c" />
      <one-to-one class="pojo.PM" name="name_pm" />
  </class>

  <class name="pojo.PM" table="pm">
      <id name="c_id">
          <generator class="increment" />
      </id>
      <property name="name_pm"  />
  </class>

我在name_pm类中定义的属性PMname_cCountry中定义的属性之间建立一对一的关系。我写的时候会出现问题:

<one-to-one class="pojo.PM" name="name_pm" />

当它应该在name_pm类内搜索时,它会开始在类PM内搜索属性Country

如何在 name_pm name_c 之间定义One-toOne关系?

2 个答案:

答案 0 :(得分:0)

似乎错误的语法。

尝试

<one-to-one name="pmNameInCountryPojo" class="pojo.PM"
            cascade="save-update"></one-to-one>

答案 1 :(得分:0)

异常本身就指向了解决方案。

您需要在name_pm课程中为pojo.Country创建getter和setter。

并添加

<one-to-one class="pojo.Country" name="${variable-name}" />
pojo.PM配置中

并为PM类中的相应变量创建setter和getter。

看看this示例,它会对你有帮助。