Prädikat IS OF TYPE
Das Prädikat IS OF TYPE wird verwendet, um den Typ einer EJB-Referenz zu prüfen. Es funktioniert ähnlich wie die Java-Instanz von Operator.
IS OF TYPE wird verwendet,
wenn mehrere abstrakte Beans in einer EJB-Vererbungshierarchie gruppiert wurden.
Die im Prädikat angegebenen Typnamen sind die abstrakten Namen der Bean.
Mit der Option ONLY kann angegeben werden, dass die Referenz von genau diesem Typ sein
muss und nicht von einem Subtyp.
Identifikationsvariable IS OF TYPE ( [ONLY] type-1, [ONLY] type-2, ..... )
Beispiel: Prädikat IS OF TYPE
Angenommen, die Bean ManagerBean ist als Subtyp von EmpBean definiert, und ExecutiveBean ist in einer EJB-Vererbungshierarchie ein Subtyp von ManagerBean.
Die folgende Abfrage gibt sowohl Mitarbeiter als auch
Manager und Geschäftsführer zurück:
SELECT OBJECT(e) FROM EmpBean e
Wenn Sie sich für Objekte interessieren, die zwar Mitarbeiter, aber weder Manager noch
Geschäftsführer sind:
SELECT OBJECT(e) FROM EmpBean e WHERE e IS OF TYPE( ONLY EmpBean )
Wenn
Sie sich für Objekte interessieren, die Manager oder Geschäftsführer sind:
SELECT OBJECT(e) FROM EmpBean e WHERE e IS OF TYPE( ManagerBean)
Die obige Abfrage ist äquivalent zu der folgenden:
SELECT OBJECT(e) FROM ManagerBean e
Wenn Sie sich nur für Manager,
aber nicht für Geschäftsführer interessieren:
SELECT OBJECT(e) FROM EmpBean e WHERE e IS OF TYPE( ONLY ManagerBean)
oder: SELECT OBJECT(e) FROM ManagerBean e
WHERE e IS OF TYPE (ONLY ManagerBean)