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() вернет, сколько записей было вставлено, обновлено или удалено.
Ссылка
Оригинал: “https://mkyong.com/hibernate/hibernate-query-examples-hql/”