Уточняющая терминология: "Увлажнение" объекта: получение свойств из БД

В контексте ORM/Lazy загрузки объектов мое понимание термина "Гидратация" выглядит следующим образом:

"Увлажнение" описывает процесс заполнения некоторых или всех ранее незаселенных атрибутов объекта, получаемого с помощью ленивой загрузки.

Например: class Author загружается из базы данных:

@Entity
class Author
{
     @Id
     long id;
     List<Book> books;
}

Первоначально коллекция books не заполняется.

Насколько я понимаю, процесс загрузки коллекции books из базы данных называется "Увлажнение" коллекции.

Правильно ли это определение, и является ли это обычное место? Есть ли еще один общий термин, который я должен использовать для этого процесса?

Ответ 1

Гидрат начинался как термин для заполнения экземпляра (но пустой) значения-объекта/модели из db (в частности, в Hibernate.)

В настоящее время различные другие ОРМ и инструменты, такие как BizTalk, используют гидрат и другую связанную с ними терминологию (например, BizTalk использует термин "обезвоженный" для обозначения того, что экземпляр доступен, но еще не заселен.)

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

Расширение BizTalk этого стиля языка, особенно Dehydrated, полностью избыточно. Неужели люди действительно забыли, как сказать, пустой?

Гидратированный и связанный с ним сбор избыточных метафор - всего лишь чистый маркетинговый пух; у них действительно нет места в качестве технических терминов. К сожалению, Hibernate и другие инструменты, которые используют эти термины, хорошо укоренились в мире развития, так что Hydrate и остальные останутся здесь.

Ответ 2

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

Ответ 3

Я думаю, что термин "гидрат (ы)" в контексте ORM просто означает, что структура дает вам объекты. Таким образом, объекты "гидратируются" ORM после выталкивания данных из магазина. Этот термин может применяться в любое время, когда структура ORM предоставляет объект/график, который представлен в хранилище.

Ответ 4

В номенклатуре Hibernate гидратация - это когда JDBC ResultSet преобразуется в массив необработанных значений:

final Object[] values = persister.hydrate(
    rs, id, object,
    rootPersister, cols, eagerPropertyFetch, session
);

final Object[] values = persister.hydrate(
    rs, id, object,
    rootPersister, cols, eagerPropertyFetch, session
);

Гидратированное состояние сохраняется в текущем запущенном контексте Persistence как объект [EntityEntry] [3], который инкапсулировал моментальный снимок сущности загрузки. Гидратированное состояние затем используют:

  • механизм грязной проверки по умолчанию, который сравнивает текущие данные сущности с моментальным снимком времени загрузки
  • кэш второго уровня, чьи записи кэша построены из моментального снимка сущности загрузки

Обратная операция называется дегидратация и копирует состояние объекта в инструкцию SQL INSERT или UPDATE.

Ответ 5

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

замените hibernate на имя вашего орма выбора