1. 程式人生 > >Mybatis引用靜態常量或者列舉型別

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呼叫的方法成員,對應[email protected]中的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$[email protected]}
GNDL語法link