Какой шаблон придерживается Hibernate? - PullRequest
21 голосов
/ 20 августа 2009

В своей книге «Шаблоны архитектуры корпоративных приложений» Мартин Фаулер рассказывает о шаблонах персистентности, которые обычно встречаются при разработке программного обеспечения и особенно в отношении ORM.

Есть ли образец, которого Hibernate придерживается наиболее близко?

Ответы [ 4 ]

15 голосов
/ 20 августа 2009

Hibernate использовать несколько шаблонов:

  • Ленивая загрузка (проксирование коллекций)
  • Единица работы (как часть объекта Session)
  • вероятно Карта идентичности или что-то более сложное
  • Метаданные отображения
  • Объект запроса для API-критериев
  • все объектные реляционные структурные структуры
8 голосов
/ 21 августа 2009

Hibernate не следует шаблону ActiveRecord. Паттерн, который Hibernate придерживается наиболее близко, это паттерн Datamapper .

2 голосов
/ 20 августа 2009

Если вы ищете простоту шаблонов проектирования, то вы можете рассмотреть Hibernate как модный API для реализации шаблона активной записи :

В разработке программного обеспечения, активный шаблон записи является шаблоном дизайна часто встречается в программном обеспечении, которое хранит свои данные в реляционном базы данных. Он был назван Мартином Фаулер в своей книге «Узоры Архитектура корпоративных приложений. Интерфейс для такого объекта будет включают такие функции, как вставка, Обновление и удаление, плюс свойства которые соответствуют более или менее непосредственно к столбцам в базовом таблица базы данных.

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

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

Hibernate, очевидно, модель домена . Объекты в ORM являются моделью предметной области, поэтому вы не можете сделать ORM без нее.

...