常见报错及解决方案

一.数据库或SQL相关
 

1.无效的列类型

  • 1111很大可能是字段类型对不上,看实体类,xml,和数据库,采用字段二分排除法排查,还有可能是参数为空
  • mybatis.configuration.jdbc-type-for-null = NULL  

    而当参数不为 NULL 时,Mybatis 会针对参数自身的类型调用 PreparedStatement 上不同的方法,此时 JdbcType 则是可以省略的。再看 JDBC 中PreparedStatement 的 setNull 方法就不难明白,JDBC 要求我们设置 NULL 参数时必须指定 JDBC 类型,Mybatis 只是照章办事而已

2.无效的字符可能是空格或者插入语句末尾的分号导致 

3.@所有人 mysql 5.6的版本在 分页和排序上有bug,如果使用了order by 条件在值相同的情况下,分页的数据可能存在重复。这是mysql 5.6 使用了堆排序造成的,堆排序不是稳定的排序。亲测5.7没有这个问题。大家可以去t12817_campaign_data_new.my 这张表中尝试一下。(SELECT * FROM t12817_campaign_data_new.my order by item desc limit 0,1;)如果有使用排序加分页的逻辑,请各位检查

 

二.JAVA相关 

1.@Transactional方法无效

  • .spring事物@Transactional作用在非public权限上的方法无效
  • @Transactional 加于private方法, 无效
    @Transactional 加于未加入接口的public方法, 再通过普通接口方法调用, 无效
    @Transactional 加于接口方法, 无论下面调用的是private或public方法, 都有效
    @Transactional 加于接口方法后, 被本类普通接口方法直接调用, 无效
    @Transactional 加于接口方法后, 被本类普通接口方法通过接口调用, 有效
    @Transactional 加于接口方法后, 被它类的接口方法调用, 有效
    @Transactional 加于接口方法后, 被它类的私有方法调用后, 有效
    总结: Transactional是否生效, 仅取决于是否加载于接口方法, 并且是否通过接口方法调用(而不是本类调用)
  • try-catch包裹且并未抛出异常不会回滚

三.rabbitMQ

  • SimpleMessageConverter only supports String, byte[] and Serializable payloads, received:com.example.springBoot.pojo.User 问题 把需要传输的对象实现序列化接口就好了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值