我在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);Enum
public enum EContext {
ALBUM,
VIDEOLIBRARY,
IMAGE,
VIDEO,
}我所知道的正确语法类似于这个<if test="context.name().equals('ALBUM')">,但我不知道如何用注释来编写它。我收到这条错误消息

谢谢你的帮忙
编辑以显示有关代码的更多信息
发布于 2020-12-21 16:52:54
name()方法返回一个java.lang.String,在OGNL中,字符串文本应该用单引号或双引号括起来。
所以,if元素应该写成..。
+ "<if test=\"context.name().equals('ALBUM')\">"或
+ "<if test='context.name().equals(\"ALBUM\")'>"https://stackoverflow.com/questions/65386082
复制相似问题