(Parenthetical rant :) Я начинаю новичок в спящем режиме, слегка расстроенный накладными расходами простого соединения, которое я мог бы написать за 15 секунд в SQL. (End rant)Создание сложного ключевого объекта Hibernate из файла hbm
Ситуация такова: у меня есть две таблицы, которые содержат один и тот же составной первичный ключ - давайте вызовите столбцы в обоих таблицах «ID» и «Версия». Мне нужны данные о конкретном идентификаторе/версии из обеих таблиц, поэтому
select a.xxx, b.yyy
from tableA a, tableB b
where a.ID = b.ID
and a.Version = b.Version
and .....
Плохой дизайн стола, но не в моих руках.
В Hibernate мое онлайн-исследование предлагает создать отдельный составной класс ключей, который будет использоваться таблицами, с объектом A, содержащим объект B, и взаимно однозначным отображением между ними в файле hbm A.
В моем проекте все объекты данных Hibernate генерируются с помощью hbm-файлов и расположены в одном и том же месте. Поэтому я хотел бы знать, могу ли я создать этот составной ключевой объект, также используя файл hbm и сохранить его вместе со своими братьями. Проблема в том, что он не сопоставляется ни с одним столом (или, можно сказать, он отображает 2 таблицы). Я пытаюсь определить, можно ли создать этот составной класс ключей с файлом hbm, а также, если это целесообразно или не делать этого. Неужели я ошибаюсь?
Заранее спасибо.
Можете ли вы опубликовать пример определения таблицы? вы имеете в виду, что эти две таблицы используют одно и то же определение ключа (т.е. обе таблицы имеют составной первичный ключ 'id' и' version', но это отдельные объекты, которые, как правило, имеют один и тот же тип ключа), или что обе таблицы относятся к третьей таблице, которая определяет этот «ключевой» объект? –
Я не могу опубликовать свой код по проприетарным причинам, и писать пример займет слишком много времени.Но да, ваша первая возможность верна - обе таблицы имеют составные первичные ключи id/version, и мне нужны некоторые данные из обеих таблиц, поэтому мне нужно присоединиться к составной PK таблицы A (id/version) к составной PK таблица B (id/версия). Поэтому я использовал тот же класс составных ключей, что и идентификатор для обоих объектов. Это был не мой вопрос выше, но сейчас я испытываю большие трудности с тем, чтобы DAO работал, много ошибок «не удалось устранить» ... может быть, тема другой публикации. – WhyGeeEx