Спящий класс картирования - PullRequest
       14

Спящий класс картирования

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

У меня есть проект, домен которого содержит следующие классы:

Courier
Customer
Food
Order
Customer
PrimitiveElement
ResturantCustomerFacade
ResturantOrderFacade

И в моей базе данных также есть следующие таблицы:

Courier
Customer
CustomizedFood
CustomizedPrimitivePrice
FoodType
Order
PrimitiveType
ValueType 

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

Ответы [ 2 ]

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

Hibernate не делает никаких классов самостоятельно; Я предполагаю, что вы говорите о Hibernate Tools , которые можно использовать для обратного инжиниринга вашей схемы базы данных и генерации соответствующих классов / отображений.

Я бы настоятельно рекомендовал бы вам не иметь два набора классов, если вы можете помочь; это обычно приносит только проблемы. Вместо этого вы должны написать свои собственные отображения, используя отображения / классы, сгенерированные Hibernate Tools, в качестве ориентира; в большинстве случаев вы сможете отобразить ваши доменные классы на ваши таблицы с минимальными изменениями или без изменений (например, такие вещи, как разные имена классов / таблиц или свойств / столбцов, легко разрешаются с помощью соответствующих отображений; ассоциации / наследование достаточно гибкие и т. д.). ..) Вот ссылка на Аннотации Hibernate Документация.

В отдельной теме такие имена, как ResturantCustomerFacade и ResturantOrderFacade довольно странные для доменных объектов. Если они действительно являются частью вашей модели, попробуйте переименовать их в RestaurantCustomer и RestaurantOrder. ИЛИ, если они действительно являются фасадами, они не являются частью модели предметной области и не должны (не могут) отображаться.

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

Hibernate в конечном итоге должен помочь вам отобразить ваших объектов в реляционную базу данных. Если вы действительно сталкиваетесь с трудностями с несовместимыми типами или устаревшим кодом, вы можете подумать о том, чтобы скрыть их (и ваши hibernate-совместимые реализации) за интерфейсами.

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