2013-06-22 3 views
0

Что делать в следующих 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, которая является собственностью определяется внутри PM класса и name_c который является свойство, определенное внутри Country класса. Проблема возникает, когда я пишу:

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

Он начинает искать свойство name_pm внутри класса PM, когда он должен искать внутри Country класса.

Как определить One-toOne соотношение между name_pm и name_c?

ответ

0

Похоже, что неправильный синтаксис.

Попробуйте

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

Что будет делать каскад? В любом случае я получаю одно и то же исключение. 'Не удалось найти getter для name_pm в классе pojo.Country' – saplingPro

+0

@saplingPro да, этот каскад является необязательным. –

+0

Ошибка относится к underScore в имени varaible, я думаю. Пока не удалось обнаружить getter. Пожалуйста, измените его на namePm и снова создайте getter и setter и попробуйте –

0

за исключением само указывает на решение.

Вам необходимо создать геттер и сеттер для name_pm в вашем классе pojo.Country.

и добавить

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

в конфигурации pojo.PM и создавать и присваивателя для соответствующей переменной в PM классе.

Посмотрите this пример, это поможет вам.