Примеры запросов Hibernate (HQL)
Hibernate создал новый язык с именем Hibernate Query Language (HQL), синтаксис которого очень похож на язык баз данных SQL. Основное различие междуHQL uses class name instead of table name, and property names instead of column name.
HQL чрезвычайно прост в освоении и использовании, а код всегда говорит само за себя.
1. Пример запроса HQL
Извлеките данные запаса, для которых код запаса равен «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
Измените название акции на «DIALOG1», где код акции - «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 Insert Query
В HQL поддерживается только INSERT INTO… SELECT…; нет ВСТАВКИ В ... ЦЕННОСТИ. 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() вернет, сколько записей было вставлено, обновлено или удалено.