簡體   English   中英

Hibernate findById或SQL查詢

[英]Hibernate findById or sql query

我有很多時間場景,我只想訪問一個/兩個/或一些列,而我們正在使用休眠模式,所以我想知道哪種性能更好

1)通過獲取hibernate的findById方法,這對我來說非常方便,因為我只能調用它,但是我認為它的性能不好,因為它將獲取所有列,而我只需要其中一些。

2)或通過每次創建乏味的查詢來創建,但性能會更好

所以我想建議我應該使用什么?

為了更具體地回答,如果您包含一個代碼片段,將很有幫助。 但總的來說,findById是一種便捷的方法,它會導致查詢與您自己編寫的查詢非常相似。 因此,就性能而言,自己編寫查詢並僅返回所需的列(構造函數表達式很有用)會更好。 我要問的問題是,改進的性能值得更復雜的代碼嗎? 您以后總是可以優化查詢。

它完全取決於要加載的實體。 如果實體是一個實體,具有很多關系,並且您需要的只是根實體中的幾個字段,那么絕對值得編寫自己的查詢,因為Hibernate會使用JOIN生成查詢來加載該實體,這可能會非常昂貴。 這里要考慮的另一件事是,您始終可以使用LAZYEAGER加載來處理正在加載的字段,但是這些設置是靜態的,並將永久應用於您的實體。
另一方面,如果實體沒有很多關系,我認為最昂貴的部分是數據庫與應用程序之間的對話時間,因此可以忽略加載許多額外的字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM