Hibernate: Как объявить внешний ключ без необходимости кодирования методов ассоциации в доменном объекте? - PullRequest
2 голосов
/ 13 апреля 2009

У меня есть две связанные таблицы, МНОГИЕ и ОДИН. Целочисленный столбец ONE_ID в таблице MANY формализует отношение «многие к одному».

Я хочу отобразить на доменные объекты Many и One и заставить Hibernate генерировать DDL, включая ограничение внешнего ключа для MANY.ONE_ID. Но я хочу получить простое свойство getter и setter pair ("int getOneId () / void setOneId (int)") для объекта домена Many, а не методы связи, которые Hibernate обычно ожидает от меня ("One getOne () / void setOne (один) "). Это возможно?

Я попытаюсь объяснить, почему я хочу этого: у меня на самом деле есть сотни таких многих ассоциаций, для которых я хочу ограничение FK, но мне никогда не придется ориентироваться. Файл отображения гибернации и объекты домена должны создаваться путем генерации кода. Все, что мне нужно сделать во время выполнения - это иметь возможность прочитать свойство FK из объекта 'many' и установить его; Мне никогда не нужно ориентироваться в ассоциации «многие к одному». Из-за проблем с генерацией кода было бы намного проще, если бы у меня были простые средства доступа на основе свойств для поля FK.

1 Ответ

0 голосов
/ 13 апреля 2009

AFAIK, у вас есть два варианта:

  • Объявите сопоставление как обычно и сделайте ассоциацию ленивой. Таким образом, вы не будете платить за то, что вы не используете. Вы также хотите тщательно выбрать владельца ассоциации. Кроме того, вы указываете свойство Long и сопоставляете его с FK.
  • Не полагайтесь на hibernate для создания схемы ddl /. Отобразите таблицы так, как вам хотелось бы (без связи, только длинные типы).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...