Рубрики
Без рубрики

Примеры запросов гибернации (HQL)

– Примеры запросов гибернации (HQL)

Hibernate создал новый язык под названием Hibernate Query Language (HQL), синтаксис которого очень похож на язык SQL базы данных. Основное различие между HQL использует имя класса вместо имени таблицы и имена свойств вместо имени столбца .

HQL чрезвычайно прост в освоении и использовании, и код всегда понятен.

1. Пример запроса HQL Select

Извлеките данные о запасах, где код запаса “7277”.

Query query = session.createQuery("from Stock where stockCode = :code ");
query.setParameter("code", "7277");
List list = query.list();
Query query = session.createQuery("from Stock where stockCode = '7277' ");
List list = query.list();

2. Пример запроса на обновление HQL

Обновите название акции до “ДИАЛОГ 1”, где код акции “7277”.

Query query = session.createQuery("update Stock set stockName = :stockName" +
    				" where stockCode = :stockCode");
query.setParameter("stockName", "DIALOG1");
query.setParameter("stockCode", "7277");
int result = query.executeUpdate();
Query query = session.createQuery("update Stock set stockName = 'DIALOG2'" +
    				" where stockCode = '7277'");
int result = query.executeUpdate();

3. Пример запроса на удаление HQL

Удалите акцию, код которой “7277”.

Query query = session.createQuery("delete Stock where stockCode = :stockCode");
query.setParameter("stockCode", "7277");
int result = query.executeUpdate();
Query query = session.createQuery("delete Stock where stockCode = '7277'");
int result = query.executeUpdate();

4. Пример запроса вставки HQL

В HQL поддерживается только ВСТАВКА В… ВЫБЕРИТЕ…; вставка В … ценности. HQL поддерживает только вставку из другой таблицы. Например

"insert into Object (id, name) select oo.id, oo.name from OtherObject oo"; 

Вставьте биржевую запись из другой таблицы backup_stock. Это также можно назвать операцией массовой вставки.

Query query = session.createQuery("insert into Stock(stock_code, stock_name)" +
    			"select stock_code, stock_name from backup_stock");
int result = query.executeUpdate();

query.executeUpdate() вернет, сколько записей было вставлено, обновлено или удалено.

Ссылка

  1. Гибернация 3.3.2 документация по запросам

Оригинал: “https://mkyong.com/hibernate/hibernate-query-examples-hql/”