Связанный запрос Связанный запрос Время знания: 2009-10-04 07:14:25 Источник: Интернет Автор: Неизвестные клики: 146 раз сначала представьте разницу между методами get () и load ():
Разница между методом get () и методом нагрузки () в основном заключается в использовании кэша второго уровня.
Метод load () будет использовать кэш второго уровня, а метод get () будет напрямую запросить базу данных, если он не найден в кэше первого уровня, и не будет искать в кэше второго уровня.
get (): если вы сначала представляете разницу между методами get () и load () в базе данных:
Разница между методом get () и методом нагрузки () в основном заключается в использовании кэша второго уровня.
Метод load () будет использовать кэш второго уровня, а метод get () будет напрямую запросить базу данных, если он не найден в кэше первого уровня, и не будет искать в кэше второго уровня.
get (): Если в базе данных нет записи, он вернет NULL.
LOAD (): Если в базе данных нет записи, будет брошено исключение.
Разница между методами списка и итератора (): (n+1?)
Когда метод List () выполняется, он напрямую запускает операторы запроса, необходимые для результатов запроса.
Метод итератора () сначала выполняет запрос для получения идентификатора объекта, а затем получает объект, который будет запрашивать на основе каждого значения идентификатора.
Следовательно: для запросов с использованием метода List () обычно выполняется только один оператор SQL, в то время как для запросов с использованием метода iterator () может потребоваться выполнение операторов N+1 SQL (n - количество записей в наборе результатов ).
Наборы результатов обрабатываются по -разному:
Метод List () будет активировать все объекты набора результатов одновременно, и он будет инициализировать все объекты набора результатов на основе результатов запроса. Если набор результатов очень большой, он займет много памяти и даже вызовет переполнение памяти.
Метод итератора () не инициализирует все объекты одновременно во время выполнения, но инициализирует объекты на основе доступа к набору результатов. Вы можете контролировать количество объектов в кэше во время одного доступа, чтобы избежать слишком большого количества кеша и вызывания переполнения памяти.
HQL: HQL-это объектно-ориентированный язык запросов.
SQL: Оперативные объекты SQL являются объектами данных, такими как таблицы данных и столбцы.
HQL является полностью ориентированным на объектно язык запросов, поэтому он может поддерживать такие функции, как наследование и несколько элементов.
HQL Query полагается на класс запросов, и каждый экземпляр запроса соответствует объекту запроса.
Функция настройки параметров, интерфейс запроса - это реальный интерфейс HQL запроса.
// Создать объект запроса
Query Query = session.createequery ("От клиента как c, где c.name =: customername и c.age =: customerale");
// Динамические параметры связывания
Query.setString ("CustomerName", "Tom");
Query.SetInteger ("Customerage", 21);
// выполнить оператор запроса и вернуть результаты
Список result = Query.list ();
HQL Запрос Шаги:
1: Получите объект сеанса Hibernate.
2: Напишите заявления HQL.
3: Используйте оператор HQL в качестве параметра, чтобы вызвать метод сеанса CreateQuery для создания объекта запроса.
4: Если оператор HQL содержит параметры, вызовите метод запроса setxxx (), чтобы назначить значения параметрам.
5: Позвоните в список и другие методы объекта запроса, чтобы пройти результаты запроса.
Запрос также содержит два метода:
SetFirStresult (int firstresult): установите запись, из которой начинается возвращенный набор результатов.
SetMaxResults (int maxresults): установите количество результатов, возвращаемых этим запросом.
Удаление сущности и обновление.
Проекционное запрос: запрос только часть атрибута.
Запрос атрибута возвращает строку
Запрос двух полей возвращает массив
Динамически построенный запрос: в основном используется для десятков табличных запросов;
Чтобы построить новый объект, добавьте конструктор;
При создании нового объекта добавьте имя пакета
Не используйте счет (*), используйте счет (постоянный объект)
Группировка и сортировка:
Порядок по пункту может быть упорядочен ключевыми словами ASC или DESC
Например: Форма пользователя u Заказ по U.Name ASC, U.age desc;
Группа по пункту и статистическому запросу:
Например: string hql = "select count (u), u.age от пользователя u Group от u.age, имеющего счет (u)> 10";
Список списка = session.createquery (hql) .list ();
Стандартные функции агрегирования SQL могут использоваться в операторах HQL, таких как: count (), sum (), max (), min (), age () и т. Д.
Запрос соединения:
Внутреннее соединение: внутреннее соединение
Левое внешнее соединение: левое внешнее соединение
Правое внешнее соединение: правое внешнее соединение
Полное соединение: полное соединение (обычно не используется)
Срочное внешнее соединение: левое внешнее соединение, левое соединение
Выбрать: используется для получения данных подключения одновременно, особенно данных сбора. Уменьшите количество взаимодействий с базой данных.
Оставшиеся на соединение: используйте внешнее соединение, чтобы выполнить внешнее соединение.
Прямо Join: как раз противоположное Join Out Join, Jock Goins возвращает все записи в правой таблице HQL и соответствующей информации о записи объекта клиента.
Четыре способа получения данных сбора:
1: hibernate.initialize (user.getorder ());
2: user.getorder (). Size ();
3: Левая и правая срочная связь
4: передовые фильтры
Критерии запросов: используйте объекты для выполнения объектов запросов.
Основными интерфейсами являются: критерии, критерия, экспрессия и классы ограничений. Способность поддерживать динамическую генерацию операторов SQL во время выполнения.
Условные шаги запроса:
1: Создать объект критериев с помощью метода CEARECRITERIA () SEESION
2: Установите объект запроса, имя относится к атрибуту объекта
3: Добавить условия запроса в объект критериев
4: execute list () запрос, чтобы вернуть результаты.
Условный запрос завершен через три класса:
Критерии: представляет вопрос.
Критерий: представляет собой условие запроса.
Ограничения: класс инструментов для создания условий запроса.
Эта статья поступает из блога CSDN.