你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
SqlRuleFilter 类
- java.
lang. Object - com.
azure. messaging. servicebus. administration. models. RuleFilter - com.
azure. messaging. servicebus. administration. models. SqlRuleFilter
- com.
- com.
public class SqlRuleFilter
extends RuleFilter
表示一个筛选器,该筛选器由表达式和在发布/订阅管道中执行的操作组成。
包含 SqlRuleFilter 类似于 SQL 的条件表达式,该表达式在中转站中针对到达消息的用户定义属性和系统属性进行计算。 所有系统属性 (,这些属性是类) 上显式列出的 ServiceBusMessage 所有属性,必须在条件表达式中加上 前缀 sys.
。 SQL 子集实现是否存在 (EXISTS) 属性的测试,测试 null 值 (IS NULL) 、逻辑 NOT/AND/OR、关系运算符、数值算术以及使用 LIKE 的简单文本模式匹配。
示例:使用 SQL 规则操作创建 SQL 规则筛选器
下面的代码示例使用 SQL 筛选器和 SQL 操作创建规则。 规则将邮件与以下项匹配:
- getCorrelationId() 等于
"email"
- getApplicationProperties()包含具有值的键
"sender"
"joseph"
- getApplicationProperties()包含值为 *
"joseph"
的键"importance"
,或者值为 NULL。
如果筛选器匹配,它将使用 "critical"
设置/更新 "importance"
中的getApplicationProperties()键。
String topicName = "emails";
String subscriptionName = "important-emails";
String ruleName = "emails-from-joseph";
RuleFilter sqlRuleFilter = new SqlRuleFilter(
"sys.CorrelationId = 'email' AND sender = 'joseph' AND (importance IS NULL OR importance = 'high')");
RuleAction sqlRuleAction = new SqlRuleAction("SET importance = 'critical';");
CreateRuleOptions createRuleOptions = new CreateRuleOptions()
.setFilter(sqlRuleFilter)
.setAction(sqlRuleAction);
RuleProperties rule = client.createRule(topicName, ruleName, subscriptionName, createRuleOptions);
System.out.printf("Rule '%s' created for topic %s, subscription %s. Filter: %s%n", rule.getName(), topicName,
subscriptionName, rule.getFilter());
构造函数摘要
构造函数 | 说明 |
---|---|
SqlRuleFilter(String sqlExpression) |
使用给定的 SQL 表达式创建一个新实例。 |
方法摘要
修饰符和类型 | 方法和描述 |
---|---|
boolean |
equals(Object other)
将此规则 |
Map<String,Object> |
getParameters()
获取筛选器表达式的值。 |
String |
getSqlExpression()
获取 SQL 表达式。 |
int |
hashCode()
返回此 Sql |
String |
toString()
将当前 实例的值转换为其等效的字符串表示形式。 |
方法继承自 java.lang.Object
构造函数详细信息
SqlRuleFilter
public SqlRuleFilter(String sqlExpression)
使用给定的 SQL 表达式创建一个新实例。
Parameters:
方法详细信息
equals
public boolean equals(Object other)
将此 RuleFilter 与指定的对象进行比较。 当且仅当参数不为 null 并且是一个与该对象具有相同参数的 SqlRuleFilter 对象时,结果才为 true。
Overrides:
SqlRuleFilter.equals(Object other)Parameters:
- 当前 SqlRuleFilter 应与其进行比较的 对象。
Returns:
getParameters
public Map
获取筛选器表达式的值。 允许的类型:string、int、long、bool、double
Returns:
getSqlExpression
public String getSqlExpression()
获取 SQL 表达式。
Returns:
hashCode
public int hashCode()
返回此 SqlRuleFilter 的哈希代码,即 SqlExpression 的哈希代码。
Overrides:
SqlRuleFilter.hashCode()Returns:
toString
public String toString()
将当前 实例的值转换为其等效的字符串表示形式。
Overrides:
SqlRuleFilter.toString()Returns: