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

#hql #hql-delete

#hql #hql-удалить

Вопрос:

Я хочу знать аналог hql для SQL:

 delete license from license, license_pool 
where license.license_pool_id = license_pool.license_pool_id 
    and license.school_id = 13 
    and license_pool.program_id = 1 
    and license.staff_member_id is null
 

Ответ №1:

Я знаю, что это старый вопрос, но вот ваш ответ. Это можно найти в документации по hibernate в разделе «Операции в стиле DML» (который относится к обновлениям и удалениям HQL).

  • В предложении from ключевое слово FROM является необязательным
  • В предложении from может быть только один объект с именем. Однако он может быть псевдонимным. Если имя объекта имеет псевдоним, то все ссылки на свойства должны быть указаны с использованием этого псевдонима. Если имя объекта не имеет псевдонима, то недопустимо уточнять любые ссылки на свойства.
  • В массовом запросе HQL не могут быть указаны объединения, ни явные, ни неявные. Подзапросы могут использоваться в предложении where, где сами подзапросы могут содержать соединения. Предложение where также необязательно.