转载:Mybatis引用静态常量或者枚举类型

Mybatis通过GNDL语法引用静态常量或者枚举类型 
代码如下: 
Mybatis xml mapper语句

 <select id="listModelsToProTps" resultType="com.voyageone.ecerp.model.wms.WmsBtShipmentModel">
        SELECT * from wms_bt_shipment${partition}
        WHERE port =${@com.voyageone.ecerp.domain.constant.wms.WmsConstant$Port@RST.value}
        AND
          tps_flg in (${@com.voyageone.ecerp.domain.enums.wms.WmsEnums$TpsFlg@NOT_HANDLE.value},
          ${@com.voyageone.ecerp.domain.enums.wms.WmsEnums$TpsFlg@CREATED.value})
        AND status != ${@com.voyageone.ecerp.domain.enums.wms.WmsEnums$ShipmentStatus@OPEN.value};
    </select>

 

枚举定义:

/*
对应的枚举代码:${@com.voyageone.ecerp.domain.enums.wms.WmsEnums$TpsFlg@CREATED.value}
*/
  public enum TpsFlg {
        NOT_HANDLE("0"),
        CREATED("1"),
        SHIPPED("2");
        private String value;

        TpsFlg(String val) {
            this.value = val;
        }
        //这里定义了mybatis调用的方法成员,对应ms$TpsFlg@CREATED.value中的value,这应该和序列化有关
        public String value() {
            return value;
        }
    }

常量类型定义

   /**
     * 港口
     * 对应的mapper xml代码:${@com.voyageone.ecerp.domain.constant.wms.WmsConstant$Port@RST.value}
     */
    public final static class Port extends AbstractTypedConstant<Integer> {

        public static final Port RST = new Port(28);

        private Port() {
        }

        public Port(Integer value) {
            this.value = value;
        }
    }

总结: 引用语法规则:${@path$subClass@Attr.getValueMethod} 

https://commons.apache.org/proper/commons-ognl/language-guide.html

在mybatis的映射xml文件调用java类的方法:

1.

SELECT * 
FROM
EC_CORE_USER
WHERE 
(user_name=#{userName} or mail =#{userName} or mobile_phone = '${@net.ytoec.framework.security.EncryptionDecryption@dSecret(userName)}') and  user_password=#{userPassword}
 

入上面代码所示。此处应注意,方法必须为静态方法。

 

2.获取类里面的常量:

r.czmc='${@com.ytoxl.module.datahub.kernel.dataobject.EcSystemLog@THE_AUDIT}'
 

3.判断是否为null:

 

<iftest="@org.apache.commons.lang.StringUtils@isNotBlank(province)">andjdo.province=#{province}</if>
 
--------------------- 
版权声明:本文为CSDN博主「sky_xin」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sky_xin/article/details/84809782

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值