LINUX.ORG.RU

Сообщения global_silence

 

Hibernate - связь 1 к 1

Всем привет. Как можно организовать связь 1 к 1 через cfg.xml файлы? Я нашел на одном ресурсе, что можно тэгом one-to-one ее организовать. Ну вот, чтобы много не читать, сделал короткий пример с созданием таблиц
president.cfg.xml:
<hibernate-mapping>
<class name=«President» table=«president»>
<id name=«id» column=«id» type=«int»>
<generator class=«native» />
</id>
<property name=«name» column=«name» type=«string» />
<one-to-one name=«country» class=«Country» />
</class>
</hibernate-mapping>

country.cfg.xml:
<hibernate-mapping>
<class name=«Country» table=«country»>
<id name=«id» column=«id» type=«int»>
<generator class=«native» />
</id>
<property name=«countryName» column=«countryname» type=«string» />
<one-to-one name=«president» class=«President» />
</class>
</hibernate-mapping>

В консоли получаю ответ
Hibernate: create table country (id integer not null auto_increment, countryname varchar(255), primary key (id))
Hibernate: create table president (id integer not null auto_increment, name varchar(255), primary key (id))
Насколько я понимаю, связь осуществляется посредством внешних ключей, которые Hibernate не создал. Или я плохо понимаю в связях, или это неверная конфигурация связи 1 к 1. Как я представляю, в связи 1 к 1 нужно использовать вспомогательную колонку также, как и в связи 1 ко многим, но только сделать эту колонку UNIQUE, чтобы туда нельзя было добавлять одинаковые значения. В принципе, можно повесить внешний ключ на айдишник одной таблицы и связать ее с айдишником другой. Но тут вообще не создаются внешние ключи. В чем проблема?

 

global_silence
()

RSS подписка на новые темы