This from the Hibernate documentation on HQL:
http://www.hibernate.org/hib_docs/v3/re ... ryhql.html
Hibernate is equipped with an extremely powerful query language that (quite intentionally) looks very much like SQL. But don't be fooled by the syntax; HQL is fully object-oriented, understanding notions like inheritence, polymorphism and association.
for the hibernate documentation on using SQL instead of HQL:
http://www.hibernate.org/hib_docs/v3/re ... rysql.html
I would only use SQL if there is something you can't do with HQL.
regards,
Mark