0

我必须直接在 where 条件下检查 ENUM,

 <if test="params.fileTypes != null and !params.fileTypes.isEmpty()">
        AND
        RTRIM(INTH.IF_FILETYPE) IN
        <foreach item="item" index="index"
            collection="params.fileTypes" open="(" separator="," close=")">
            #{item}
        </foreach>
   </if>
   <if test="params.fileTypes.isEmpty()">
        AND
        RTRIM(IF_FILETYPE) IN (#{@com.xyz.wealth.appconfiguration.domain.FileType})
   </if>        
4

1 回答 1

0

假设这com.xyz.wealth.appconfiguration.domain.FileType是您所指的枚举,它有两个值。例如

public enum FileType {
  DOCUMENT,
  IMAGE
}

下面的 MyBatis 语句...

RTRIM(IF_FILETYPE) IN (
<foreach item="x" separator=","
    collection="@om.xyz.wealth.appconfiguration.domain.FileType@values()">
  #{x}
</foreach>
)

... 被翻译成下面的 SQL 和枚举值DOCUMENT,并IMAGE分别作为字符串绑定到占位符。

RTRIM(IF_FILETYPE) IN (?, ?)
于 2022-02-03T06:33:35.137 回答