mybatis - 如何在带有mybatis注解的if中枚举
问题描述
我在MyBatis 注释中的 if 中使用枚举编写语法时遇到问题。
@Delete("<script>DELETE FROM tb_a WHERE "
+ "<if test='context.name().equals(ALBUM)'>"
+ " album_id = #{id}"
+ "</if>"
+ "<if test='context.name().equals(VIDEOLIBRARY)'>"
+ " videolibrary_id = #{id}"
+ "</if>"
+ "</script>")
boolean delete(@Param("id") int id, @Param("context") EContext context);
枚举
public enum EContext {
ALBUM,
VIDEOLIBRARY,
IMAGE,
VIDEO,
}
我知道的正确语法是这样的,<if test="context.name().equals('ALBUM')">
但我不知道如何用注释来编写它。我收到此错误消息
谢谢你的帮助
编辑以显示有关代码的更多信息
解决方案
name()
方法返回一个java.lang.String
and 在 OGNL 中,字符串文字应该用单引号或双引号括起来。
所以,if 元素应该写成..
+ "<if test=\"context.name().equals('ALBUM')\">"
或者
+ "<if test='context.name().equals(\"ALBUM\")'>"