SqlRuleFilter Klasse
- java.
lang. Object - com.
azure. messaging. servicebus. administration. models. RuleFilter - com.
azure. messaging. servicebus. administration. models. SqlRuleFilter
- com.
- com.
public class SqlRuleFilter
extends RuleFilter
Stellt einen Filter dar, bei dem es sich um eine Zusammensetzung eines Ausdrucks und einer Aktion handelt, die in der Pub/Sub-Pipeline ausgeführt wird.
Ein SqlRuleFilter enthält einen SQL-ähnlichen Bedingungsausdruck, der im Broker anhand der benutzerdefinierten Eigenschaften und Systemeigenschaften der eingehenden Nachrichten ausgewertet wird. Allen Systemeigenschaften (bei denen es sich um explizit in der ServiceBusMessage -Klasse aufgeführte Eigenschaften handelt) muss im Bedingungsausdruck ein Präfix enthalten sys.
. Die SQL-Teilmenge implementiert Tests auf Das Vorhandensein von Eigenschaften (EXISTS), Tests auf NULL-Werte (IS NULL), logische NOT/AND/OR, relationale Operatoren, numerische Arithmetik und einfache Textmusterabgleich mit LIKE.
Beispiel: Erstellen eines SQL-Regelfilters mit SQL-Regelaktion
Im folgenden Codebeispiel wird eine Regel mithilfe eines SQL-Filters und einer SQL-Aktion erstellt. Die Regel vergleicht Nachrichten mit:
- getCorrelationId() gleich
"email"
- getApplicationProperties() enthält einen Schlüssel
"sender"
mit Wert"joseph"
- getApplicationProperties() enthält einen Schlüssel
"importance"
mit dem Wert *"joseph"
ODER der Wert ist NULL.
Wenn der Filter übereinstimmt, wird der "importance"
Schlüssel in getApplicationProperties() mit "critical"
festgelegt/aktualisiert.
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());
Zusammenfassung zum Konstruktor
Konstruktor | Beschreibung |
---|---|
SqlRuleFilter(String sqlExpression) |
Erstellt eine neue instance mit dem angegebenen SQL-Ausdruck. |
Methodenzusammenfassung
Modifizierer und Typ | Methode und Beschreibung |
---|---|
boolean |
equals(Object other)
Vergleicht diesen Regelfilter |
Map<String,Object> |
getParameters()
Ruft den Wert eines Filterausdrucks ab. |
String |
getSqlExpression()
Ruft den SQL-Ausdruck ab. |
int |
hashCode()
Gibt einen Hashcode für diesen Sql-Regelfilter |
String |
toString()
Konvertiert den Wert des aktuellen instance in die entsprechende Zeichenfolgendarstellung. |
Geerbte Methoden von java.lang.Object
Details zum Konstruktor
SqlRuleFilter
public SqlRuleFilter(String sqlExpression)
Erstellt eine neue instance mit dem angegebenen SQL-Ausdruck.
Parameters:
Details zur Methode
equals
public boolean equals(Object other)
Vergleicht diesen RuleFilter mit dem angegebenen Objekt. Das Ergebnis ist true, wenn und nur, wenn das Argument nicht NULL ist und ein SqlRuleFilter-Objekt ist, das dieselben Parameter wie dieses Objekt aufweist.
Overrides:
SqlRuleFilter.equals(Object other)Parameters:
- das Objekt, mit dem der aktuelle SqlRuleFilter verglichen werden soll.
Returns:
getParameters
public Map
Ruft den Wert eines Filterausdrucks ab. Zulässige Typen: string, int, long, bool, double
Returns:
getSqlExpression
public String getSqlExpression()
Ruft den SQL-Ausdruck ab.
Returns:
hashCode
public int hashCode()
Gibt einen Hashcode für diesen SqlRuleFilter zurück, bei dem es sich um den Hashcode für sqlExpression handelt.
Overrides:
SqlRuleFilter.hashCode()Returns:
toString
public String toString()
Konvertiert den Wert des aktuellen instance in die entsprechende Zeichenfolgendarstellung.
Overrides:
SqlRuleFilter.toString()Returns:
Gilt für:
Azure SDK for Java