Перейти к основному содержимому

83 записи с тегом "Hibernate"

Посмотреть все теги

· 3 мин. чтения

1. Обзор

LOB или Large OBject относится к типу данных переменной длины для хранения больших объектов.

Тип данных имеет два варианта:

  • CLOB — Большой объект символов будет хранить большие текстовые данные.
  • BLOB — большой двоичный объект для хранения двоичных данных, таких как изображения, аудио или видео.

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

2. Настройка

· 3 мин. чтения

1. Обзор

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

Язык запросов Hibernate (HQL) поддерживает различные агрегатные функции — min(), max(), sum(), avg() и count() в операторе SELECT . Как и любое другое ключевое слово SQL, использование этих функций не зависит от регистра.

В этом кратком руководстве мы рассмотрим, как их использовать. Обратите внимание, что в приведенных ниже примерах мы используем либо примитивные типы, либо типы-оболочки для хранения результатов агрегатных функций. HQL поддерживает оба варианта, так что нужно выбирать, какой из них использовать.

2. Первоначальная настройка

· 15 мин. чтения

1. Введение

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

Мы рассмотрим их назначение и некоторые распространенные причины. Кроме того, мы рассмотрим их решения.

2. Обзор исключений гибернации

Многие условия могут вызывать исключения при использовании Hibernate. Это могут быть ошибки сопоставления, проблемы с инфраструктурой, ошибки SQL, нарушения целостности данных, проблемы сеанса и ошибки транзакций.

· 2 мин. чтения

1. Введение

При работе с Hibernate мы можем использовать именованные параметры для безопасной передачи данных в SQL-запрос. Мы присваиваем значения параметрам запроса во время выполнения, чтобы сделать их динамическими. Что еще более важно, это помогает предотвратить атаки путем внедрения кода SQL.

Однако мы можем столкнуться с ошибками при работе с именованными параметрами. Двумя наиболее распространенными из автономной библиотеки Hibernate и реализации Hibernate JPA, соответственно, являются:

  • Не все именованные параметры установлены
  • Именованный параметр не привязан

Хотя сообщения об ошибках могут различаться между vanilla Hibernate и его реализацией JPA, основная причина одна и та же.

В этом уроке мы рассмотрим, что вызывает эти ошибки и как их избежать . Попутно мы покажем, как использовать именованные параметры с автономной библиотекой Hibernate.

· 4 мин. чтения

1. Обзор

Основным недостатком разбросанных по объектам доступа к данным HQL и SQL является то, что код становится нечитаемым. Следовательно, может иметь смысл сгруппировать все HQL и SQL в одном месте и использовать только их ссылку в фактическом коде доступа к данным. К счастью, Hibernate позволяет нам делать это с помощью именованных запросов.

Именованный запрос — это статически определенный запрос с предопределенной неизменной строкой запроса. Они проверяются при создании фабрики сеансов, что приводит к быстрому сбою приложения в случае ошибки.

В этой статье мы увидим, как определять и использовать именованные запросы Hibernate с помощью аннотаций @NamedQuery и @NamedNativeQuery .

2. Сущность

· 4 мин. чтения

1. Введение

В этом кратком руководстве мы рассмотрим кеш планов запросов, предоставляемый Hibernate, и его влияние на производительность.

2. Кэш плана запроса

Каждый запрос JPQL или запрос Criteria анализируется в абстрактном синтаксическом дереве (AST) перед выполнением, чтобы Hibernate мог сгенерировать инструкцию SQL. Поскольку компиляция запросов требует времени, Hibernate предоставляет QueryPlanCache для повышения производительности.

Для нативных запросов Hibernate извлекает информацию об именованных параметрах и типе возврата запроса и сохраняет ее в ParameterMetadata .

· 4 мин. чтения

1. Обзор

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

В этом кратком руководстве мы увидим, как мы можем добиться этого в Hibernate, используя собственный класс.

2. Сущности

Во-первых, давайте посмотрим на сущности, которые мы будем использовать для извлечения данных:

· 2 мин. чтения

1. Обзор

В этом кратком руководстве мы рассмотрим, как получить все данные из таблицы с помощью Hibernate, используя JPQL или Criteria API.

JPQL обеспечивает более быструю и простую реализацию, в то время как использование Criteria API является более динамичным и надежным.

2. JPQL

JPQL предоставляет простой и понятный способ получить все сущности из таблицы.

· 5 мин. чтения

1. Обзор

В этом руководстве мы увидим, что такое прокси в контексте метода load() Hibernate .

Читателям, плохо знакомым с Hibernate, рекомендуется сначала ознакомиться с основами .

2. Краткое введение в прокси и метод load()

По определению, доверенное лицо — это «функция, уполномоченная выступать в качестве заместителя или замещать другую» .

· 5 мин. чтения

1. Введение

В этом кратком руководстве мы объясним, когда возникает исключение «Нет сеанса гибернации, привязанного к потоку», и как его разрешить.

Здесь мы сосредоточимся на двух разных сценариях:

  1. с помощью LocalSessionFactoryBean
  2. с помощью AnnotationSessionFactoryBean

2. Причина