+
 新版

mybatis xml 使用静态变量

蛋挞王子 发布于 2018/10/11 15:56
阅读 3K+
收藏 1
<if test="${@xxx.base.entity.IdEntity@dbType} == 'oracle'">'%'||#{et.value}||'%'</if>
<if test="${@xxx.base.entity.IdEntity@dbType} == 'mssql'">'%'+#{et.value}+'%'</if>
<if test="${@xxx.base.entity.IdEntity@dbType} == 'mysql'">concat('%',#{et.value},'%')</if>

IdEntity.java

private static String dbType;
@Value("${spring.datasource.druid.db-type}")
public void setDbType(String dbTypeStr) {
    dbType = dbTypeStr;
}

按照网上学的方法

${@全路径类名称@静态变量|@静态方法}
@全路径类名称@静态变量|@静态方法

也不行啊

错误

Error evaluating expression '${@com.creatsoft.snow.core.base.entity.IdEntity@dbType} == 'oracle''

大家知道什么问题吗

加载中
0
蛋挞王子
蛋挞王子

。。。这个是不是都看不见啊

0
蛋挞王子
蛋挞王子

没有人造吗

0
不大不小开发
不大不小开发
<if test="'${@xxx.base.entity.IdEntity@dbType}' == 'oracle'">'%'||#{et.value}||'%'</if> 静态变量加上单引号试试
蛋挞王子
蛋挞王子
我的静态函数私有的改成公用就好了 楼下是正解
蛋挞王子
蛋挞王子
这个好像不是哎 表达式中不能这样写我试过 在写sql语句的时候可以‘${@xxx.IdBean@Type}}’
0
李小默LXM
李小默LXM

        <where>
            <if test="2 != @com.ligang.dto.User@num">
                id = #{id}
            </if>
        </where>

 

        <where>
            <if test="1 != @com.ligang.dto.User@getNum()">
                id = #{id}
            </if>
        </where>

蛋挞王子
蛋挞王子
谢谢大佬 看了你的代码我以为必须把静态常量放在后面 然后发现其实都一样 我的静态常量是private改public就好用了,不细心导致也没关注这个 感谢感谢
李小默LXM
李小默LXM
public class User { public static int num = 2; public static int getNum() { return 2; } }
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部