Mybatis引用靜態常量或者列舉型別
阿新 • • 發佈:2019-02-19
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