前提:我有个接口是根据不同的账号登录后,关联自己账号下的数据。
遇到个诡异的问题,有个语句线上运行了几个月了,
今天老大突然登录了一个有大批量数据的账号,然后这个语句就开始报错,当然日志里面有报具体是哪个语句。我拿出来这个语句在mysql里面执行没问题,然后字段对着实体类一个个的瞅,然后后面干脆重新一个个复制过去。还是报这个错误。
然后和同事讨论了一会儿也没想出来哪里会还有问题
首先只有登录这个账户查询的数据量比较大才会报这个错误。其它账号一直很正常,由于这个账号用户每次只是调另外一个数据接口看数据从未直接登录上来看,所以这个报错的接口用户是不知道的,但是现在后期正规起来,万一有的客户上来看系统还报错是不行的。现在情况是只有线上报错。线下复现不出来,线上的数据库没有权限看。
语句里每个字段和实体类字段完全一致,是复制过去的,creator = #{creator,jdbcType=VARCHAR}传参都是这种方式传的,类型也都传了
[2018-10-08 10:14:12]10.28.47.229
content: ### The error may involve defaultParameterMap
[2018-10-08 10:14:12]10.28.47.229
content: ### The error occurred while setting parameters
[2018-10-08 10:14:12]10.28.47.229
content: ### Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
[2018-10-08 10:14:12]10.28.47.229
content: The last packet successfully received from the server was 5,006 milliseconds ago. The last packet sent successfully to the server was 5,005 milliseconds ago.
[2018-10-08 10:14:12]10.28.47.229
content: ; SQL []; Communications link failure