Java:mybatis enum枚举参数判断提示invalid comparison enum and enum

问题描述

枚举类StatusEnum 的定义

package com.constant;

import java.io.Serializable;

/**
 * 状态枚举
 */
public enum StatusEnum {
    
    
    // 未完成
    INCOMPLETE,

    // 已完成
    COMPLETED,
}

原来的写法

<if test="status == @com.constant.StatusEnum@COMPLETED"></if>

可能是版本的问题,总是报错

### Error querying database.  
Cause: java.lang.IllegalArgumentException: 
invalid comparison: com.constant.StatusEnum and com.constant.StatusEnum

问题解决

变通的解决办法:将枚举类转为字符串判断

<if test="status.toString() == 'INCOMPLETE'"></if>

或者

<if test="status.toString() == @[email protected]()"></if>

Mapper.xml 中并没有语法提示,所以字符串判断也是可以的

参考

  1. MyBatis Mapper Xml中使用枚举进行比较导致的异常:invalid comparison

猜你喜欢

转载自blog.csdn.net/mouday/article/details/133047008