我在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()
方法返回a java.lang.String
,在OGNL中,字符串文字应该用单引号或双引号引起来。
因此,if元素应写为。
+ "<if test=\"context.name().equals('ALBUM')\">"
要么
+ "<if test='context.name().equals(\"ALBUM\")'>"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句