Я не уверен, что Стратегия извлечения сама по себе является шаблоном проектирования, но на самом деле является частью класса шаблонов. Два примера: Ленивая загрузка и предварительная загрузка. Еще одна связанная с этим концепция - кэширование.
Они никак не связаны с ORM или Hibernate , но часто упоминаются там, так как вам необходимо настроить инструмент так, чтобы он действовал определенным образом, в отличие от кодирования это напрямую.
В целом, ваша стратегия выборки контролирует, как вы извлекаете данные в ваше приложение, и может (или не может) влиять на то, как создаются экземпляры объектов в вашем приложении для языка OO.
Если, например, вы обычно просматриваете весь набор данных (или набор объектов), то может быть более эффективно загружать весь набор сразу или эффективно предварительно выбирать данные, чтобы они были готовы к обработке .
С другой стороны, если вы часто обращаетесь только к первой части данных; или, возможно, конверт объекта вместо его содержимого, вы можете выбрать создание экземпляра только части верхнего уровня иерархии объектов вместо всего ее содержимого.