【问题标题】:Unable to make 'one-to-one' relationship between the two classes无法在两个类之间建立“一对一”关系
【发布时间】:2013-06-22 09:27:38
【问题描述】:

我应该在下面的xml 中做什么来在Country 类和PM 类之间建立one-to-one 关系?

  <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 和name_c 之间建立一对一的关系,PM 类中定义的属性和Country 类中定义的属性。我写的时候出现问题:

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

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

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

【问题讨论】:

    标签: java hibernate jakarta-ee hibernate-mapping


    【解决方案1】:

    似乎语法错误。

    试试

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

    【讨论】:

    • 级联会做什么?无论如何我得到了同样的例外Could not find a getter for name_pm in class pojo.Country
    • @saplingPro 是的,级联是可选的。
    • 错误是关于变量名称中的下划线我猜。虽然它无法检测到getter。请将其更改为namePm并再次创建getter和setter并尝试
    • 不,不是下划线。
    【解决方案2】:

    异常本身指向解决方案。

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

    并添加

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

    在您的pojo.PM 配置中并为PM 类中的相应变量创建setter 和getter。

    看this的例子,它会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多