Type definition error - 類型定義錯誤 /nested exception is com.fasterxml.jackson.databind...


開發過程中發現遇到了一個難題,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類型的進行返回,具體代碼比較多,再加上其中有遇到了其他問題,所以在這里只放一個鏈接,大家可以到鏈接地址中去詳細的看看,鏈接如下:

關於BLOB轉為BASE64的詳細工具類代碼(可直接使用)

另追加:下面這個工具類是我在使用 Mybatis 數據持久層框架時發現用上面的工具類報了個——代理問題,初步分析是因為 Mybatis 在數據處理時存在對代理方面的一些特殊操作,因此我又找到了另一種處理方式,工具類鏈接如下:

BLOB轉BASE64—— 詳細工具類(可直接使用、非代理方式)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM