不规范的枚举类代码引发的一场事故
今天开发跟我反馈了一个很奇怪的问题,说有个对象的状态属性是枚举类,设置了该对象的状态后,插入数据库,这个状态没了,凭空消失了,变成了空白字符串。这让人感觉非常奇怪,我参与了整个问题排查过程,得到的结论和枚举类的规范有关系,我将过程总结在这里提供大家一起学习交流。 问题代码 让我们先看看出问题的部分代码是什么样子的: @Override public String insert(PayRequest payRequest) { // 省略部分无关代码 PayRequestDO payRequestDO = convertor.toDO(payRequest); payMapper.insert(payRequestDO); return payRequest.getPayNo(); } 这个方法很简单,就是把传过来的 PayRequest 对象转成 PayRequestDO 对象,然后插入数据库。 PayRequest 和 PayRequestDO 都是普通的 pojo 对象,没什么复杂的,只是 PayRequestDO 的 status 换成了 String: pu...