рабочий режим гибернации - PullRequest
       14

рабочий режим гибернации

4 голосов
/ 26 августа 2009

Я пытаюсь написать программу с Hibernate. Мой домен завершен, и я пишу базу данных.

Я запутался в том, что делать. Должен ли я

  • создайте мои таблицы sql в классах и позвольте Hibernate сделать их
  • Или создайте таблицы в базы данных и перепроектировать его и позволить спящим сделать мои уроки?

Я услышал первый вариант от кого-то и прочитал второй вариант на сайте Netbeans.

Кто-нибудь знает, какой подход правильный?

Ответы [ 4 ]

4 голосов
/ 26 августа 2009

Это зависит от того, как вы лучше всего понимаете программу, которую пишете. Когда я проектирую свою систему, я обычно думаю о сущностях и их отношениях друг с другом, поэтому я начинаю с бизнес-объектов, затем записываю сопоставления hibernate и позволяю hibernate создавать базу данных.

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

1 голос
/ 26 августа 2009

Полагаю, вы можете сделать и то и другое, так что выбор за вами.

Лично я пишу много вручную. Хотя Hibernate делает разумную работу по созданию базы данных для вас, он делает это не так хорошо, как я сам. Я бы предположил, что то же самое относится и к классам Java, которые он производит, хотя я никогда не использовал эту функцию.

Что касается сгенерированных классов (если вы пошли по пути генерации классов), я держу пари, что у каждого поля есть получатель / установщик, должны ли поля быть только для чтения или нет (кто-то сказал, что безопасность потоков и изменчивость) и что вы можете не добавляйте поведение, потому что оно переопределяется, если вы восстанавливаете классы.

0 голосов
/ 28 августа 2009

Я за то, чтобы сначала написать Java. Хотя это может быть личное предпочтение.

Если вы проанализируете свой домен, вы, вероятно, обнаружите, что они являются некоторой копией.

  • Например, столбцы аудита (создатель и редактор пользователя, время создания и редактирования) часто являются общими для большинства таблиц.
  • Идентификатор часто является общим полем.

Посмотрите на свой домен, чтобы увидеть дублирование.

Дублирование - это возможность повторного использования. Вы можете использовать наследование или композицию. Преимущества:

  • меньше времени: у вас будет гораздо меньше вещей, чтобы написать,
  • логический: одно и то же логическое поле будет записано один раз (иначе будет много похожих полей)
  • повторное использование: в коде клиента для ваших сущностей вы можете написать код многократного использования. Например, если все ваши сущности имеют одно и то же поле идентификатора с именем ид. Из-за своего суперкласса, клиентский код может сделать общий вызов object.getIdent (), не выясняя точный класс объекта, поэтому он будет более пригоден для повторного использования .
0 голосов
/ 26 августа 2009

Определенно напишите java-объекты, а затем добавьте постоянство и позвольте hibernate генерировать таблицы.

Если вы пойдете другим путем, вы потеряете выгоду от ООД и всего такого хорошего.

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