
edi.rule.model.JSRuleUnion Maven / Gradle / Ivy
package edi.rule.model;
import com.fasterxml.jackson.annotation.JsonAlias;
import edi.rule.annotation.JSRuleCheck;
import edi.rule.extend.interfaces.IJSRuleModel;
import edi.rule.work.constant.ZSSign;
import edi.rule.work.constant.JSRuleJsonValue;
import lombok.Data;
/**
* @author 摩拉克斯
* @date 2023年2月21日 上午9:29:10
* 表示查询时的union关键字模型
*
注:oracle(8)数据库在使用union的时候如A union all B,如果A或B的结尾处有排序order语法,数据库会抛出缺失右括号的错误
*/
@Data
public final class JSRuleUnion implements IJSRuleModel{
/**
*
union所对应的类型,仅为union和all两种类型,all表示union all,默认为all
* */
@JSRuleCheck(values= {JSRuleJsonValue.TYPE_UNION,JSRuleJsonValue.TYPE_UNION_ALL})
public String type;
/**
*
union所对应的子查询的点
* @see JSRulePointer
* */
@JsonAlias({"p"})
@JSRuleCheck(required=true)
public JSRulePointer pointer;
public JSRuleUnion() {
this.type = JSRuleJsonValue.TYPE_UNION_ALL;
}
/**
*
获取union或union all文本
* */
public String getTypeText() {
return type.equals(JSRuleJsonValue.TYPE_UNION)?type:JSRuleJsonValue.TYPE_UNION +ZSSign.BLANK +JSRuleJsonValue.TYPE_UNION_ALL +ZSSign.BLANK;
}
}