Стоит ли пытаться перейти от созданного вручную файла отображения гибернации к аннотациям? - PullRequest
2 голосов
/ 17 сентября 2008

У меня есть веб-приложение, исходная кодовая база которого была разработана с помощью созданного вручную файла отображения гибернации. С тех пор я стал достаточно опытным в «кодировании» моего файла hbm.xml. Но все классные дети в наши дни используют аннотации.

Итак, вопрос в следующем: Стоит ли усилий , чтобы реорганизовать мой код для использования спящих аннотаций? Получу ли я что-нибудь, кроме модерна и модерна? Потеряю ли я какой-либо элемент управления в моем существующем файле отображения с ручным кодированием?

Подвопрос: Сколько это будет стоить усилий? Мне нравятся мои базы данных, скудные и злые. Отображение охватывает только дюжину доменных объектов, включая два набора, некоторые подклассы и около 8 таблиц.

Спасибо, уважаемые SOpedians, заранее за ваше информированное мнение.

Ответы [ 8 ]

7 голосов
/ 17 сентября 2008

«Если не сломалось - не чини!»

В любом случае, я старомодный парень из POJO / POCO, но зачем переходить на аннотации, чтобы быть крутым? Насколько мне известно, вы можете делать большинство вещей в виде аннотаций, но более сложные отображения иногда более четко выражаются в виде XML.

4 голосов
/ 17 сентября 2008

Одна вещь, которую вы получите от использования аннотаций вместо внешнего файла сопоставления, заключается в том, что ваша информация сопоставления будет храниться в классах и полях, что повышает удобство обслуживания. Вы добавляете поле, вы сразу добавляете аннотацию. Вы удаляете один, вы также удаляете аннотацию. вы переименовываете класс или поле, аннотация тут же, и вы можете переименовать таблицу или столбец. Вы вносите изменения в наследование классов, это учитывается. Вам не нужно идти и редактировать внешний файл через некоторое время. это делает все это более эффективным и менее подверженным ошибкам.

С другой стороны, вы потеряете глобальный вид, который использовался для вашего файла сопоставления.

3 голосов
/ 17 сентября 2008

Я недавно сделал оба в проекте и нашел:

  1. Я предпочитаю писать аннотации в XML (хорошо сочетается со статической типизацией Java, автоматическим заполнением в IDE, рефакторингом и т. Д.). Мне нравится видеть, как все сплетено, а не переходить назад и вперед между кодом и XML.
  2. Кодирует информацию БД в ваших классах. Некоторые люди считают это грубым и неприемлемым. Я не могу сказать, что это беспокоило меня. Это должно куда-то идти, и мы собираемся перестроить ВОЙНУ для изменения независимо.
  3. На самом деле мы прошли весь путь до аннотаций JPA, но в некоторых случаях аннотаций JPA недостаточно, поэтому для настройки пришлось использовать аннотации Hibernate или config.
  4. Обратите внимание, что вы можете использовать аннотации и файлы hbm. Может быть, это хороший гибрид, который определяет O-часть в аннотациях и R-часть в hbm-файлах, но звучит как большая проблема, чем стоит.
2 голосов
/ 17 сентября 2008

Столько, сколько мне нравится переходить на новые и потенциально лучшие вещи, которые я должен помнить, чтобы не связываться с вещами, которые не сломаны. Поэтому, если теперь у вас работает отображение спящего режима в отдельном файле, я бы не стал его менять.

1 голос
/ 18 сентября 2008

Я определенно предпочитаю аннотации, используя их обоих. Они гораздо более удобны в обслуживании, и, поскольку вы не имеете дело с таким количеством классов, которые нужно переназначить, я бы сказал, это того стоит. Аннотации значительно упрощают рефакторинг.

0 голосов
/ 18 сентября 2008

«Если не сломалось - не чини!»

@ Мака - Спасибо, мне нужно было это услышать. И спасибо всем за ваши ответы.

Хотя мне очень повезло, что у меня есть безумный уровень профессионального и творческого контроля над моей работой, и я могу использовать практически любую технологию, библиотеку или инструмент по любой причине (за исключением дорогих вещей), включая «потому что все крутые дети используют его» * ​​1012 * ... Не имеет смысла переносить то, что составляет значительную часть ядра существующего проект.

Я когда-нибудь попробую аннотации Hibernate или JPA с проектом зеленого поля. К сожалению, я редко получаю новые совершенно независимые проекты.

0 голосов
/ 17 сентября 2008

Единственное, что вы получите от использования Аннотации

Возможно, я бы сказал, что это вещь, которую вы хотите получить от использования аннотаций. Поскольку с NHibernate вы не получаете безопасность во время компиляции, это следующая лучшая вещь.

0 голосов
/ 17 сентября 2008

Все функции поддерживаются как в XML, так и в аннотациях. Вы по-прежнему сможете переопределять свои аннотации с помощью объявления xml.

Что касается усилий, я думаю, что это того стоит, так как вы сможете видеть все в одном месте и не переключаться между вашим кодом и файлом XML (если, конечно, вы не используете два монитора;))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...