开发过程中发现遇到了一个难题,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类型的进行返回,具体代码比较多,再加上其中有遇到了其他问题,所以在这里只放一个链接,大家可以到链接地址中去详细的看看,链接如下: