Java: mybatis enum enumeration parameter judgment prompt invalid comparison enum and enum

Problem Description

Definition of enumeration class StatusEnum

package com.constant;

import java.io.Serializable;

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

    // 已完成
    COMPLETED,
}

original writing

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

It may be a version problem, I always get an error

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

problem solved

Alternative solution: Convert enumeration class to string judgment

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

or

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

There is no syntax prompt in Mapper.xml, so string judgment is also possible.

reference

  1. Exception caused by using enumeration for comparison in MyBatis Mapper Xml: invalid comparison

Guess you like

Origin blog.csdn.net/mouday/article/details/133047008