2014-02-06 84 views
0

我有一個使用PostgreSQL和Hibernate的Spring/Roo應用程序。Spring Roo - Bypass Hibernate

,只要適合,連接信息位於數據庫屬性文件

src/main/resources/META-INF/spring/database.properties 

不幸的是,我已經在那裏通過Hibernate查詢數據庫正在消耗的資源太多的情況。我確信我可以從上面列出的文件中提取數據庫信息(網址/用戶名/密碼),但我不確定從哪裏開始搜索。

是否有手冊或其他我可以找到這些信息的地方?

回答

0

如果您希望繞過Hibernate手動編寫更高效的查詢,則不必單獨建立連接,而應該不這樣做。

獲得休眠會話和展開它獲得底層java.sql.Connection。或者通過Hibernate自己的接口使用本機SQL。

這樣你仍然可以使用Hibernate的有用位,就像連接池集成一樣。與Hibernate共享相同的連接池將提高效率,如果以這種方式進行操作,將會減少額外的代碼。

我沒有使用Spring Roo,所以我不能專門爲它說話。 Here's info for Hibernate used via JPAhere。對於您有Session對象直接Hibernate使用中,使用Session.connection()在舊版本的Hibernate,或在較新版本的Work接口:

如果您堅持要用手去做這件事,請從開始。

+0

感謝您的協助。我確實嘗試了你提供的鏈接,但你是對的,效率不值得額外頭痛。 – chora

+0

@chora有時它非常值得頭痛,特別是在使用底層數據庫引擎的本地特性使得以更智能和更高效的方式編寫查詢成爲可能的情況下。如果你只是想減少每個查詢的開銷,那麼不需要,它通常是不值得的,並且通過使你的查詢變得更聰明 - 設置操作查詢而不是循環查詢等,你會得到更好的結果。 –

+0

考慮到我我正在使用Spring/Roo/Hibernate應用程序。您正在討論在函數的開頭放置「@Transactional(readOnly = true)」...是的? – chora