lombok 引起的 java.lang.stackoverflowerror 問題
問題情景:實體使用了jpa的@oneToMany 和lombok的@Data
在執行過程中呼叫關聯表資料時顯示異常 java.lang.stackoverflowerror
問題分析:因為使用@oneToMany預設配置,所以載入方式為lazy。在主表查詢時關聯表未載入,而主表使用@Data後會實現帶關聯表屬性的hashCode和equals等方法
解決方法:
1.不使用lazy載入
[email protected] 替換為@Getter,@Setter等方法
3.保留@Data,新增@EqualsAndHashCode(exclude="關聯表屬性") 實現hasCode和equals方法時忽略關聯屬性
作者:想揉娜娜奇的臉
連結:https://www.jianshu.com/p/d6bb1c343146
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。
相關推薦
lombok 引起的 java.lang.stackoverflowerror 問題
問題情景:實體使用了jpa的@oneToMany 和lombok的@Data 在執行過程中呼叫關聯表資料時顯示異常 java.lang.stackoverflowerror 問題分析:因為使用@oneToMany預設配置,所以載入方式為lazy。在主表查詢時關聯表未載入,而主表使用@Data後會實現
重寫getColumnName()方法報錯java.lang.StackOverflowError
n) vector main thread 想法 color override 文章 nco 我在一個方法裏面初始化了一個列名,並添加了列名 columnNames = new Vector(); columnNames.add("學號");
自己遇到過的出現java.lang.StackOverflowError的原因
方法 .get obj jsonarray json ack getjson 出現 equals public static JSONArray geth24Weather(String result) {//獲取當天24小時以及第二天的天氣結果對象
正則表達式Matcher.find報錯 java.lang.StackOverflowError解決
出了 drag 換行符 string 內容 plugins stat 字符 stack 在最近一個java項目中使用了正則表達式,抓取網頁中的內容,明明很正確的正則表達式,但在Matcher.find時報錯了: public static List<St
java專案啟動時,java.lang.StackOverflowError 解決辦法
之前做的一個專案,一切正常。有天在啟動時,突然報錯了。 報錯資訊如上 看日誌猜測是資料庫連線池爆了,然後改資料庫連線池配置,沒有用。 一想到是棧溢位,想可能是記憶體小了,重新分配idea、tomcat記憶體,沒有用。 然後去百度,別人都說是遞迴等方法層級太深,可是我
java.lang.StackOverflowError--解決方法
問題如下圖: 檢視網上的資料說是死迴圈或者遞迴的問題,終於在自己的程式碼中找到問題,其實就是AdminService類中初始化方法錯了,一直遞迴的呼叫本類中的方法,如下圖: 應該改成這樣:(問題就解決了) 總結:報這種錯誤,就是自己的程式碼問題,應仔細檢查報錯的那行程式
Hibernate一對多查詢物件時報java.lang.StackOverflowError錯誤(堆疊溢位)解決方案
問題: 自己建了一張客戶的表和訂單表,平常都沒問題,今天居然丟擲堆疊溢位的問題,百思不得其解。最後發現原因是兩個物件的toString方法重寫之後,應用程式遞迴太深了,所以發生了堆疊溢位。 java
物件轉String過程中出現java.lang.StackOverflowError堆疊溢位錯誤的分析
最近在做專案過程中多次遇到該問題,所以整理一下做個筆記。該錯誤出現的原因一般都是因為不停的迴圈遞迴呼叫。1、虛擬機器棧是什麼? 棧也叫棧記憶體,是java虛擬機器的記憶體模型之一。它的生命週期是線上程建立時建立,執行緒結束而消亡,釋放記憶體。因此是私有的,不可共享 棧儲存的資
java.lang.StackOverflowError
StackOverflowError是由於當前執行緒的棧滿了 ,也就是函式呼叫層級過多導致。 比如死遞迴。 如: public String homePage(){ this.findAllNews(); return "shouye"; } p
jackson序列化json報錯java.lang.StackOverflowError
工作中使用jackson序列化json到前臺的時候,發現報錯了 前臺觸發,後臺直接卡死,部分堆疊如下 [ERROR][2017-07-03 09:35:37,148][org.framework.core.util.LogUtil][org.framework.web.sy
java.lang.StackOverflowError出現的原因
嚴重: Exception initializing page context java.lang.StackOverflowError at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServl
Android list 泛型 用Gson 轉json字串 出現 java.lang.StackOverflowError異常解決
不廢話 第一次寫部落格,不知道怎麼寫, 直接進入主題 我來這最熟悉的程式碼 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSt
正則表示式二次Matcher.find時 java.lang.StackOverflowError的解決方法
在最近一個java專案中使用了正則表示式,抓取網頁中的內容,明明很正確的正則表示式,但在Matcher.find時報錯了: public static List<String> findStrs(String regx,String sourceSt
Tomcat啟動出現ContainerBase.addChild//java.lang.StackOverflowError/springfox異常
場景 使用Spring Boot開發,idea啟動正常。war在Tomcat 8中啟動出現異常: [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBa
return一個list執行起來報java.lang.StackOverflowError:null
出現棧記憶體溢位的常見原因有2個: 1. 函式遞迴呼叫層次過深,每呼叫一次,函式的引數、區域性變數等資訊就壓一次棧,並且沒有及時出棧。 2. 區域性靜態變數體積太大 第二種情況也比較常見,比如在函式裡定義很大的區域性變數(例如大陣列),這種情況可以將區域性變數改為靜態變數(實
java.lang.StackOverflowError 和OutofMemoryError解決方案彙總
在java虛擬機器規範中,虛擬機器棧和本地方法棧都會出現StackOverflowError和OutofMemoryError,程式計數器是java虛擬機器中唯一一塊不會產生error的記憶體區域,StackOverflowError代表的是,當棧深度超過虛擬機器分配給執行
spring-data-jpa雙向表關聯查詢時引發異常:java.lang.StackOverflowError: null
專案異常如下: 2018-01-26 17:12:38.162 WARN 3128 --- [nio-8080-exec-6] .w.s.m.s.DefaultHandlerExceptionResolver : Failed to write HTTP
在hibernate中解決java.lang.StackOverflowError
public class GoodsDaoImpl implements GoodsDao {private Connection conn;private PreparedStatement preStatement;private ResultSet res;/*** 查詢商品列表* @throws SQ
java.lang.StackOverflowError(hibernate記憶體溢位)
java.lang.StackOverflowErrorat java.lang.Integer.stringSize(Integer.java:384)at java.lang.Integer.toString(Integer.java:330)at java.lang.
Hibernate多對一遍歷物件的時候報java.lang.StackOverflowError錯誤
·在Hibernate中多對一關係,有時候不習慣使用debug,比較喜歡在控制檯打印出來物件。這個時候就喜歡在兩個物件裡面都重寫toString方法。這個時候變報了下面的這個錯誤。 java.lang.StackOverflowError at java.lang.In