Зачем использовать Hibernate Mapping Component? - PullRequest
3 голосов
/ 30 января 2012

Я изучаю hibernate и я столкнулся с компонентом Hibernate Mapping.Зачем нам его использовать, если у нас может быть один и тот же класс pojo для ученика и адреса?

Ответы [ 2 ]

3 голосов
/ 30 января 2012

Можно. Но это не значит, что ты хочешь.

Причина первая: вы хотите смоделировать их по-другому

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

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

Напротив, в таблицах вы идете на уступки, чтобы повысить производительность и более прямые запросы. Это означает, что вы можете денормализовать свою модель (например, объединение студентов и адресов).

Причина вторая: устаревшие модели

К примеру. Если у вас есть устаревшая таблица и вы хотите использовать два объекта, вам нужно это отображение. Или ... если ваше приложение уже создано на основе двух объектов, но ваша база данных реинжинирирована, и вы решаете, что одна таблица лучше.

1 голос
/ 06 апреля 2013

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

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