В моей среде IDE используется другой синтаксис SQL, чем я знаю для спящих запросов. Я перехожу к документам HQL (http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/queryhql.html), и они не объясняют, как этот запрос получен. Это просто и должно быть определение синтаксиса для того, что я нахожу, но я не могу его найти. Может ли кто-нибудь разъяснить мне?Где четко определяется HQL?
Основной HQL запрос звучит так:
SELECT u FROM User u
В SQL я написал бы это так:
SELECT * FROM User;
или
SELECT u.* FROM User AS u;
Но кому нужны дополнительные сложности для такой простой запрос.
Где четко определяется HQL?
Да? Вы связаны с документами, которые определяют HQL. Основное отличие указано в первом абзаце этой ссылки: дополнительная сложность связана с тем, что она является сопоставлением между объектом и таблицами, то есть «HQL полностью объектно-ориентирован и понимает такие понятия, как наследование, полиморфизм и ассоциация» – Bizmarck
Bizmark, Документы Я связал это, чтобы не определить простой пример запроса, который я дал. –
В частности, раздел 14.6 вышеприведенной ссылки JBOSS определяет предложение SELECT, но не * использует * универсальное предложение select и не объясняет использование синонима «u» вместо звездочки, чтобы выбрать весь список столбцов или отсутствие «как» в определении синонима в «user u». Или я полностью неправильно интерпретирую HQL, потому что для этого нет хороших документов. Может ли «u» быть ссылкой на класс «User.Java», который определяет те же столбцы, что и таблица «Пользователь» в БД или наоборот ... Если это так, я не вижу этого отображения в любом месте. –