欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis collection查詢集合屬性報(bào)錯(cuò)的解決方案

 更新時(shí)間:2021年09月23日 15:49:16   作者:谷幽然  
這篇文章主要介紹了Mybatis collection查詢集合屬性報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Mybatis collection查詢集合屬性報(bào)錯(cuò)

錯(cuò)誤日志

org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$EnhancedResultObjectProxyImpl]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$EnhancedResultObjectProxyImpl and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.hexagonsi.sandtablebackendservice.controller.viewModel.ReturnResult["data"]->java.util.ArrayList[0]->com.hexagonsi.sandtablebackendservice.model.AreaBean_$$_jvstc74_0["handler"])
    at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:303)
    at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)
    at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:287)
    at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:226)
    at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:124)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
    at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
    at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
    at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
    at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
    at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
    at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
    at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
    at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
    at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
    at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
    at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1639)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

背景

使用collection查詢集合屬性數(shù)據(jù)

排查

如下圖,發(fā)現(xiàn)在查詢數(shù)據(jù)后,實(shí)體類中自動添加了一個(gè)“handler”屬性,該屬性是沒有對應(yīng)的set/get方法

解決方法

在結(jié)合屬性所在的類上添加注解:轉(zhuǎn)json時(shí),忽略自動產(chǎn)生的handler屬性

@JsonIgnoreProperties(value = {"handler"})

用以在json序列化時(shí)忽略bean中一些不需要轉(zhuǎn)化的屬性

MyBatis 包含屬性為集合的查詢

父實(shí)體類

public class MerchantsVO {
    private Integer id;
    private String name;
    private List<PaymentAccountVO> paymentAccountList;
}

關(guān)聯(lián)子查詢實(shí)體類

public class PaymentAccountVO {
    private Integer id;
    private Integer merchantsId;
}

父查詢返回結(jié)果實(shí)體類映射

<resultMap id="merchantsResultMap" type="com.entity.vo.MerchantsVO">                
        <result property="id" column="id"/>
        <result property="name" column="name"/>
        <collection property="paymentAccountList" ofType="com.entity.vo.PaymentAccountVO"
   column="id" select="getPaymentAccountByMerchantsId" fetchType="eager">
        </collection>
</resultMap>
     <collection>標(biāo)簽中的  column="id" , 對應(yīng)為父實(shí)體類數(shù)據(jù)庫映射字段,用于關(guān)聯(lián)子查詢

集合子查詢實(shí)體類映射

<resultMap id="paymentAccountResultMap" type="com.entity.vo.PaymentAccountVO">
     <!-- 定義這個(gè)集合中元素的封裝規(guī)則 -->
        <result property="id" column="id"/>
        <result property="merchantsId" column="merchants_id"/>
</resultMap>

父查詢

<select id="getMerchantsVOList" resultMap="merchantsResultMap">
    SELECT m.* FROM merchants m
</select>

子查詢

<select id="getPaymentAccountByMerchantsId" resultMap="paymentAccountResultMap">
    SELECT * FROM payment_account WHERE merchants_id = #{id}
</select>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文淺析Java中的值傳遞

    一文淺析Java中的值傳遞

    今天在解決一個(gè)問題時(shí),程序總是不能輸出正確值,分析邏輯思路沒問題后,發(fā)現(xiàn)原來是由于函數(shù)傳遞導(dǎo)致了這個(gè)情況,下面我們就來看看Java中的值傳遞到底是什么情況吧
    2023-08-08
  • HotSpot的Java對象模型之Oop-Klass模型詳解

    HotSpot的Java對象模型之Oop-Klass模型詳解

    這篇文章主要介紹了HotSpot的Java對象模型之Oop-Klass模型詳解,在JVM層面,不僅Java類是對象,Java 方法也是對象, 字節(jié)碼常量池也是對象,一切皆是對象,JVM使用不同的oop-klass模型來表示各種不同的對象,需要的朋友可以參考下
    2023-08-08
  • Java 中Comparable和Comparator區(qū)別比較

    Java 中Comparable和Comparator區(qū)別比較

    本文,先介紹Comparable 和Comparator兩個(gè)接口,以及它們的差異;接著,通過示例,對它們的使用方法進(jìn)行說明
    2013-09-09
  • Java中程序的運(yùn)行全過程

    Java中程序的運(yùn)行全過程

    這篇文章主要介紹了Java中程序的運(yùn)行全過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • maven快速生成SpringBoot打包文件的方法步驟

    maven快速生成SpringBoot打包文件的方法步驟

    本文主要介紹了使用Maven快速生成SpringBoot項(xiàng)目打包文件的方法,包括如何生成可執(zhí)行的JAR文件,如何將配置文件、運(yùn)行腳本、調(diào)試腳本、證書文件等拷貝到指定目錄,及如何編譯出部署包,這種方法能大大方便微服務(wù)的部署,提高部署效率
    2024-10-10
  • 解決CentOS7中運(yùn)行jar包報(bào)錯(cuò):xxx(Permission?denied)

    解決CentOS7中運(yùn)行jar包報(bào)錯(cuò):xxx(Permission?denied)

    在實(shí)際工作我們經(jīng)常會在linux上運(yùn)行Spring boot編寫的微服務(wù)程序,下面這篇文章主要給大家介紹了關(guān)于如何解決CentOS7中運(yùn)行jar包報(bào)錯(cuò):xxx(Permission?denied)的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • Java基礎(chǔ)教程之對象引用

    Java基礎(chǔ)教程之對象引用

    這篇文章主要介紹了Java基礎(chǔ)教程之對象引用,“對象引用”(object reference)是一個(gè)重要重要概念,涉及內(nèi)存,需要的朋友可以參考下
    2014-09-09
  • java 生成二維碼實(shí)例

    java 生成二維碼實(shí)例

    這篇文章主要介紹了java 生成二維碼的實(shí)例,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Java工作隊(duì)列代碼詳解

    Java工作隊(duì)列代碼詳解

    這篇文章主要介紹了Java工作隊(duì)列代碼詳解,涉及Round-robin 轉(zhuǎn)發(fā),消息應(yīng)答(messageacknowledgments),消息持久化(Messagedurability)等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Java傳引用問題舉例詳解

    Java傳引用問題舉例詳解

    引用傳遞是Java中一個(gè)重要的概念,它與值傳遞不同,可以使得函數(shù)或方法可以修改傳入的對象,這篇文章主要給大家介紹了關(guān)于Java傳引用問題的相關(guān)資料,需要的朋友可以參考下
    2024-07-07

最新評論