Pfadausdrücke
Ein Pfadausdruck ist eine Identifikationsvariable gefolgt vom Navigationsoperator ( . ) und der Angabe einer CMP oder einer Beziehung.
Ein Pfadausdruck, der zu einem CMR-Feld führt, kann weiter navigiert werden, wenn das CMR-Feld einwertig ist. Wenn der Pfadausdruck auf eine mehrwertige Beziehung führt, ist er endgültig und kann nicht weiter navigiert werden. Wenn der Pfadausdruck zu einem CMP-Feld führt, dessen Typ ein Wertobjekt ist, kann auf die Attribute des Wertobjekts weiter navigiert werden.
Beispiel: Wertobjekt
SELECT object(e) FROM EmpBean e
WHERE e.adresse.fern('San Jose') < 10 and e.adresse.plz = 95037
Wenn Sie nach Wertattributen suchen möchten, verwenden Sie am besten das Composer-Pattern, um Wertobjektattribute zu relationalen Spalten zuzuordnen. Wenn Sie Wertobjekte in serialisiertem Format speichern, muss jedes Wertobjekt von der Datenbank abgerufen und entserialisiert werden. Wertobjektmethoden funktionieren nur in dynamischen Abfragen.
Ein Pfadausdruck kann auch auf eine Bean-Methode navigieren. Die Methode muss entweder in der fernen oder lokalen Bean-Schnittstelle definiert sein. Methoden können nur in dynamischen Abfragen verwendet werden. Es ist nicht möglich, ferne und lokale Methoden in einer einzigen Abfrageanweisung gemeinsam zu verwenden.
Wenn die Abfrage ferne Methoden enthält, muss die dynamische Abfrage über die Schnittstelle für ferne Abfragen ausgeführt werden. Bei der Verwendung der Schnittstelle für ferne Abfragen aktiviert der Abfrageservice Beans und erzeugt Instanzen der fernen Bean-Schnittstelle.
Ebenso muss eine Abfrageanweisung mit lokalen Bean-Methoden über die Schnittstelle für lokale Abfragen ausgeführt werden. Dabei aktiviert der Abfrageservice Beans und erzeugt Instanzen der lokalen Schnittstelle.
Verwenden Sie für den Zugriff auf CMP- und CMR-Felder einer Bean keine Getter-Methoden.
Wenn eine Methode überlastete Definitionen hat, müssen die überlasteten Methoden eine unterschiedliche Anzahl Parameter haben.
Die Methoden benötigen gültige Rückgabetypen und Methodenargumente, und die Rückgabetypen müssen entweder einfache Typen sein wie byte, short, int, long, float, double, boolean, char, oder Wrapper-Typen gemäß der folgenden Liste:
Byte, Short, Integer, Long, Float, Double, BigDecimal, String, Boolean, Character, java.util.Calendar, java.sql.Date, java.sql.Time, java.sql.Timestamp, java.util.Date
Wenn ein Eingabeargument einer Methode NULL ist, wird angenommen, dass die Methode einen NULL-Wert zurückgibt, und die Methode wird nicht aufgerufen.
Ein Pfadausdruck mit Collection-Wert kann in der FROM-Klausel als Collection-Member-Deklaration verwendet werden. Auch eine Verwendung mit den Prädikaten IS EMPTY, MEMBER OF und EXISTS in der WHERE-Klausel ist möglich.
Syntax der FROM-Klausel | Gültigkeitsanweisung |
---|---|
|
OK |
|
UNGÜLTIG -- nicht navigierbar über emps, da mehrwertig |
|
OK |
|
OK |