hibernate懶載入和json外掛程式衝突問題

2021-09-23 10:45:48 字數 636 閱讀 9095

一、問題描述

專案使用ssh框架,當獲得乙個list,然後用gson外掛程式轉化為json時候出問題。出問題**如下

public string choosecustomer()  catch (ioexception e) 

return null;

}

使用debug後發現:

1、list獲得到了資料

2、**執行到2和3之間的兩行**的時候,就出問題了。既不報錯,後面的**也不執行了。

(真tm,你倒是給我報個錯啊)

二、問題解決

方式一:然後,我想起了hibernate的懶載入是不是和gson轉換起衝突了。customer物件預設是lazy載入,而且裡面有引用型別的屬性,而且該物件也是預設懶載入。

我沒有修改customer的lazy載入。只是讓customer裡面的引用型別物件改為不是懶載入。

然後就tm沒有問題了。

方式二:使用gson的時候設定那個引用屬性不轉換。

三、總結

1、hibernate懶載入,當呼叫get方法的時候,才會載入該物件。

2、當呼叫gson轉換的時候並沒有呼叫customer裡面引用型別的get方法,只呼叫了customer裡面的get方法,所以會報錯。

Hibernate懶載入策略

hibernate懶載入策略 概念 lazy的概念就是只有在真正使用物件時,才會去建立。對hibernate而言,就是真正載入時才發出載入sql語句。延遲載入機制是為了避免一些無謂的效能開銷而提出來的。重點牢記 1.load支援延遲載入,get不支援延遲載入。2.lazy的生命週期與session相...

hibernate懶載入原理

懶載入的意思是查詢的時候不會立刻訪問資料庫,而返回的是 物件,當真正去使用物件欄位的時候才會訪問資料庫。load object,serializable 前提實體類不能是final的。根據id查詢 查詢返回的是 物件,不會立刻訪問資料庫,是懶載入的。當真正去使用物件的時候才會訪問資料庫。用load的...

Hibernate懶載入策略

hibernate懶載入策略 概念 lazy的概念就是只有在真正使用物件時,才會去建立。對hibernate而言,就是真正載入時才發出載入sql語句。延遲載入機制是為了避免一些無謂的效能開銷而提出來的。重點牢記 1.load支援延遲載入,get不支援延遲載入。2.lazy的生命週期與session相...