createSQLQuery到HQL

时间:2011-02-01 09:21:01

标签: hibernate spring-mvc

首先,我是Spring MVC和hibernate的新手。我的大四学生告诉我,在我们的项目中,他们使用createSQLQuery在许多地方发出sql,现在他希望我制作一个详细的列表,所有这些都可以转换为HQL,而不是全部。

之前我没有使用过createSQLQuery或HQL,所以我怎么能告诉他哪个createSQLQuery可以转换为HQL而哪些不可以。

1 个答案:

答案 0 :(得分:3)

基本上,你需要学习Hibernate和HQL才能回答这个问题。

从实践中,以下几种SQL查询通常无法转换为HQL:

  • 针对未由Hibernate映射的表或视图的查询
  • 使用SELECTFROM子句中的子查询进行查询(如果在没有这些子查询的情况下无法将其重写为等效形式)
  • 查询UNIONINTERSECTEXCEPT
  • 使用DBMS特定功能的查询

另请注意,HQL查询有时会产生次优的SQL,因此出于性能原因,某些查询可以在手工制作的SQL中表示。

另见: