Java Mybatis懶加載報錯末尾顯示_$$_jvst12a_0["handler"])的解決方案


異常信息

Type definition error: [simple type, class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactoryEnhancedResultObjectProxyImpl];nestedexceptioniscom.fasterxml.jackson.databind.exc.InvalidDefinitionException:Noserializerfoundforclassorg.apache.ibatis.executor.loader.javassist.JavassistProxyFactoryEnhancedResultObjectProxyImpl]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactoryEnhancedResultObjectProxyImpl];nestedexceptioniscom.fasterxml.jackson.databind.exc.InvalidDefinitionException:Noserializerfoundforclassorg.apache.ibatis.executor.loader.javassist.JavassistProxyFactoryEnhancedResultObjectProxyImpl and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.ruoyi.framework.web.page.TableDataInfo[“rows”]->com.github.pagehelper.Page[0]->com.ruoyi.project.system.student.domain.ZStudent_$$_jvst12a_0[“handler”])

解決方法

  1. 關閉該查詢的懶加載 fetchType="eager"
    下面的兩種方法我也試過,好像並沒有什么作用,在進行序列化的時候就會出現問題比如說BackstageRole會變成Backstage_$$_jvst12a_0這種代理對象(非原始對象)。
    <resultMap id="RoleMap" type="com.hyper.netman.entity.business.BackstageRole">
        <result column="id" property="id"/>
        <result column="role_name" property="roleName"/>
        <result column="role_desc" property="roleDesc"/>
        <result column="create_time" property="createTime"/>
        <result column="modify_time" property="modifyTime"/>
        <!--需要關閉懶加載,不然對象不是原來的對象-->
        <collection property="resources" column="id" javaType="list" fetchType="eager" select="getRolesMenus"/>
    </resultMap>
  1. 返回的類加上注解(即實體類)
@JsonIgnoreProperties(value = { "handler" })
public class BackstageRole{}
  1. 配置json轉換器屬性 SerializationFeature.FAIL_ON_EMPTY_BEANS為false
spring:
  jackson:
    serialization:
      FAIL_ON_EMPTY_BEANS: false


免責聲明!

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



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