2015-06-05 2 views
1

Я новичок в Hibernate. Есть ли хороший способ обработки постоянных изменений полей таблицы или связей (особенно отношения)? Обратное отображение из таблицы в код Jave (Bean) с использованием автоматических инструментов, таких как DB Browser, перезапишет все конфигурационные файлы Hibernate и .Java-файлы, поэтому нам нужно вручную изменить код в Java-коде и .xml?Спящий режим с постоянными изменениями таблицы

Другими словами, Hibernate - это всего лишь инструмент для генерации скелетного кода?

Спасибо.

ответ

0

Hibernate - это ORM, который призван облегчить жизнь при использовании базы данных в контексте OO. См. here для объяснения в ORM.

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

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

В целом существуют различные хорошие практики, которые я бы посоветовал;

  • Настройте только те поля, которые вам нужны. Знайте, что на самом деле вам не нужно отображать каждое поле в таблице - или любые отношения в этом отношении.
  • Спящий режим может легко изменять имя поля. Это небольшое изменение в файле конфигурации или аннотации, позволяющее использовать другую переменную класса с именем столбца.
  • Перейдите из файла конфигурации .hbm.xml, чтобы указать отображение непосредственно в коде Java, используя Annotations. Это даст вам только одно место для редактирования.
  • Вернитесь на чертежную доску и примените немного программного обеспечения. Проанализируйте свои требования и данные и создайте надежный дизайн макета базы данных, прежде чем писать или смотреть на свой код. Создайте диаграмму отношений сущностей для дизайна.
+0

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

+0

Похоже, вам просто нужно прочитать, что может сделать ORM/Hibernate в вашей ситуации. Это не просто отображение .. но может определенно отображать сложные отношения и может быть очень полезно, если вы знаете, что делаете. Существует кривая обучения, когда вы выходите за рамки простых сопоставлений. Если вы используете Spring, вы хотите его интегрировать. Один из способов может состоять в том, чтобы игнорировать использование части отображения и использовать ее для sessionFactory - создание собственного пользовательского SQL с сеансом спящего режима - тогда вы можете затем сделать отображение позже. – Ross

Смежные вопросы