2016-04-29 81 views
3

我的團隊在Hibernate 3.x下一直使用hibernate Criteria API很長一段時間。最近,我們希望將Hibernate版本升級到5,但Criteria API似乎不再被推薦。但JPA看起來像一個完全不同的API,我們不想冒險。我們是否應該繼續使用舊標準?是遺留的Criteria API仍然推薦?

回答

3

那麼,在Version 5.0 Criteria Chapter警告是相當不錯的大:

Hibernate提供一個較舊的,傳統的org.hibernate.Criteria API,它應該考慮廢棄。沒有功能開發將針對這些API。最終,Hibernate特定的標準功能將作爲JPA javax.persistence.criteria.CriteriaQuery的擴展移植。有關org.hibernate.Criteria API的詳細信息,請參閱傳統Hibernate標準查詢。

還有更多:

老休眠org.hibernate.Criteria查詢API的用戶會識別的一般方法,但我們相信,JPA API是優越,因爲它代表了一個乾淨的外觀在從該API中吸取的經驗教訓。

所以,它看起來真的取決於你的團隊。我花了一段時間才習慣JPA API,但現在已經非常順利。爲了獲得非常大的讀取性能,我放棄了Hibernate,但通常我沒有任何使用JPA的問題。我傾向於使用基本acccess的@NamedQueries,如果我需要更動態的東西,我傾向於使用Criteria API。

編輯:更新我能解決性能問題,現在應用程序是嚴格的JPA。

0

如果由於時間限制/項目期限/其他風險的原因,您無法將代碼從舊版Hibernate Criteria API移至JPA API,您至少應該設置某種時間表來回復它。 Hibernate很可能會在以後的兩個主要版本中完全放棄棄用的Criteria API。