首先,我是Spring MVC和hibernate的新手。我的大四学生告诉我,在我们的项目中,他们使用createSQLQuery在许多地方发出sql,现在他希望我制作一个详细的列表,所有这些都可以转换为HQL,而不是全部。
之前我没有使用过createSQLQuery或HQL,所以我怎么能告诉他哪个createSQLQuery可以转换为HQL而哪些不可以。
答案 0 :(得分:3)
基本上,你需要学习Hibernate和HQL才能回答这个问题。
从实践中,以下几种SQL查询通常无法转换为HQL:
SELECT
和FROM
子句中的子查询进行查询(如果在没有这些子查询的情况下无法将其重写为等效形式)UNION
,INTERSECT
,EXCEPT
。另请注意,HQL查询有时会产生次优的SQL,因此出于性能原因,某些查询可以在手工制作的SQL中表示。
另见: