2011-02-01 67 views
0

首先,我是Spring MVC和休眠的新手。我的資深人員告訴我,在我們的項目中,他們使用createSQLQuery在許多地方激發sql,現在他希望我製作一份詳細清單,所有這些清單都可以轉換爲HQL,而不是全部。createSQLQuery to HQL

我之前沒有使用過createSQLQuery或HQL,所以我怎麼能告訴他哪個createSQLQuery可以轉換爲HQL,哪些不能。

回答

3

基本上,您需要學習Hibernate和HQL才能回答這個問題。

從實踐中,以下種的SQL查詢的通常不能被轉換爲HQL:

  • 查詢針對未由Hibernate映射表或視圖
  • 查詢與SELECT子查詢和FROM條款(如果如果沒有這些子查詢,它們不能被重寫爲等效形式)
  • 查詢與UNION,INTERSECT,EXCEPT。使用特定DBMS的功能

  • 查詢還注意到,HQL查詢有時會產生不理想的SQL,使一些查詢可以在性能方面的原因手工製作的SQL表示。

    參見: