你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

SqlRuleFilter 类

public class SqlRuleFilter
extends RuleFilter

表示一个筛选器,该筛选器由表达式和在发布/订阅管道中执行的操作组成。

包含 SqlRuleFilter 类似于 SQL 的条件表达式,该表达式在中转站中针对到达消息的用户定义属性和系统属性进行计算。 所有系统属性 (,这些属性是类) 上显式列出的 ServiceBusMessage 所有属性,必须在条件表达式中加上 前缀 sys. 。 SQL 子集实现是否存在 (EXISTS) 属性的测试,测试 null 值 (IS NULL) 、逻辑 NOT/AND/OR、关系运算符、数值算术以及使用 LIKE 的简单文本模式匹配。

示例:使用 SQL 规则操作创建 SQL 规则筛选器

下面的代码示例使用 SQL 筛选器和 SQL 操作创建规则。 规则将邮件与以下项匹配:

如果筛选器匹配,它将使用 "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规则筛选器的哈希代码,该筛选器是 Sql表达式的哈希代码。

String toString()

将当前 实例的值转换为其等效的字符串表示形式。

方法继承自 java.lang.Object

构造函数详细信息

SqlRuleFilter

public SqlRuleFilter(String sqlExpression)

使用给定的 SQL 表达式创建一个新实例。

Parameters:

sqlExpression - 筛选器的 SQL 表达式。

方法详细信息

equals

public boolean equals(Object other)

将此 RuleFilter 与指定的对象进行比较。 当且仅当参数不为 null 并且是一个与该对象具有相同参数的 SqlRuleFilter 对象时,结果才为 true。

Overrides:

SqlRuleFilter.equals(Object other)

Parameters:

other -
  • 当前 SqlRuleFilter 应与其进行比较的 对象。

Returns:

如果传递的对象是具有相同参数值的 SqlRuleFilter,则为 True,否则为 False。

getParameters

public Map getParameters()

获取筛选器表达式的值。 允许的类型:string、int、long、bool、double

Returns:

获取筛选器表达式的值。

getSqlExpression

public String getSqlExpression()

获取 SQL 表达式。

Returns:

SQL 表达式。

hashCode

public int hashCode()

返回此 SqlRuleFilter 的哈希代码,即 SqlExpression 的哈希代码。

Overrides:

SqlRuleFilter.hashCode()

Returns:

此 对象的哈希代码值。

toString

public String toString()

将当前 实例的值转换为其等效的字符串表示形式。

Overrides:

SqlRuleFilter.toString()

Returns:

当前实例的字符串表示形式。

适用于