開發過程中發現遇到了一個難題,Type definition error: (錯誤信息如下代碼區),在網上搜索了半天的資料,很多都是說缺了個空參構造,但是我發現這個方法很明顯的不適合我的問題,因為我的並不存在實體對象類,也就與空參構造無關了,最后問題的發現點還是在錯誤信息里;
(以下是主要錯誤信息為了方便查看進行了回車分段,其實是一段)
Type definition error: [simple type, class oracle.jdbc.OracleConnection]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Direct self-reference leading to cycle (through reference chain: java.util.ArrayList[1]->java.util.LinkedHashMap["data"]->java.util.ArrayList[0]->java.util.HashMap["APP_ICON"]->com.sun.proxy.$Proxy117["wrappedBlob"]->oracle.sql.BLOB["dbaccess"]->oracle.jdbc.driver.T4CConnection["wrapper"])
通過如上錯誤信息的查看,其實是我的一個字段的類型定義不被識別導致的,可以看到的是HashMap集合中的 “APP_ICON” 的數據類型是 “BLOB” (二進制大對象類型,是一個可以存儲二進制文件的容器。),當我把這個字段從我的sql中移除(查詢出的數據不含有此字段)后發現數據就可以跑通了;
更好的解決辦法后續推出;
解決辦法
解決辦法已經找到,其結果是將BLOB數據轉成String類型的進行返回,具體代碼比較多,再加上其中有遇到了其他問題,所以在這里只放一個鏈接,大家可以到鏈接地址中去詳細的看看,鏈接如下: