公司最近使用的ORM框架是JPA實現產品使用的是hibernate,曾經看過一篇博客上面說的是若是團隊裏面沒有一個精通hibernate的人,那麼最好不要使用它,我如今是深入的體會到了。可是使用什麼框架不是我能決定的,若是是個人話,我寧願使用mybatis。吐槽完來說講出現的問題,由於咱們項目是一個電商的項目模塊比較多,因此各類表關聯。
用了一段時間之後,咱們發現很是的慢,打開一個頁面要20多秒==!,後臺一直打印sql,咱們在實體上面註解的LAZY看似並無起什麼做用。各類調試各類百度可是一直找不到緣由。sql
後面今天實現受不了了。我靜下來仔細分析了一下,各類調試之後,我忽然意識到,咱們的項目和一塊兒拿的項目不同的地方在於如今這個項目所有是使用rest風格的。而以往只要使用了懶加載那麼頁面上使用到了,纔會查詢,由於是使用到了jsp模板,是動態的編譯的,說白一點就是其實jsp就是JAVA代碼。可是咱們的不同,咱們的將資源所有進行序列化操做,而後經過json將數據給傳輸到客戶端,那麼在序列化的時候,就會將全部的實體給進行序列化。大概知道緣由了之後,個人作法就是在返回的時候,動態的指定哪一些實體不須要序列化,對於那種互相關聯的也忽略一邊。再進行一遍操做的時候,果真不會那麼慢了,最多一秒就出來了。我以爲這個坑仍是必須注意一下的,不過我以爲仍是沒有一個精通hibernate的人的緣由。json
這個就當本身的一個總結吧,我以爲,對於技術選型必定要考慮具體狀況,並非好別人以爲好用就選什麼。最後說一句,團隊沒有hibernate大神,仍是少用,會被坑的要死要死的。mybatis