【发布时间】:2011-02-01 09:21:00
【问题描述】:
首先,我是 Spring MVC 和休眠的新手。前辈告诉我,在我们的项目中,他们在很多地方都使用 createSQLQuery 来触发 sql,现在他要我做一个详细的列表,所有的都可以转换为 HQL,哪些不能。
我之前没用过createSQLQuery和HQL,我怎么告诉他哪个createSQLQuery可以转HQL,哪个不行。
【问题讨论】:
标签: hibernate spring-mvc
首先,我是 Spring MVC 和休眠的新手。前辈告诉我,在我们的项目中,他们在很多地方都使用 createSQLQuery 来触发 sql,现在他要我做一个详细的列表,所有的都可以转换为 HQL,哪些不能。
我之前没用过createSQLQuery和HQL,我怎么告诉他哪个createSQLQuery可以转HQL,哪个不行。
【问题讨论】:
标签: hibernate spring-mvc
基本上,您需要学习 Hibernate 和 HQL 才能回答这个问题。
从实践来看,以下几种 SQL 查询通常不能转换为 HQL:
SELECT 和FROM 子句中带有子查询的查询(如果没有这些子查询就无法将它们重写为等效形式)UNION、INTERSECT、EXCEPT 进行查询。另请注意,HQL 查询有时会产生次优 SQL,因此出于性能原因,某些查询可以用手工制作的 SQL 表示。
另请参阅:
【讨论】: