Kompatibilitätsprobleme von EJB-Anfragen mit SQL

Da eine EJB-Abfrage in SQL (Structured Query Language) kompiliert wird, müssen Sie die Kompatibilitätsprobleme zwischen Java und SQL beachten.

Die beiden Programmiersprachen unterscheiden sich in den folgenden Punkten, die für die Formulierung gültiger EJB-Abfragen von entscheidender Bedeutung sind:
  • Die Vergleichssemantik von SQL-Zeichenfolgen stimmt nicht exakt mit der von Java überein. Beispiel: "A" (der Buchstabe A) und "A " (der Buchstabe A plus Leerzeichen) sind in SQL identisch, nicht aber in Java.
  • Vergleiche und Sortierreihenfolge richten sich nach der zugrunde liegenden Datenbank. Wenn Sie beispielsweise DB2 mit der Codepage EBCDIC verwenden, ist die Sortierreihenfolge nicht identisch mit der Sortierung in einem Java-Programm. Einige Datenbanken sortieren den Wert NULL an letzter und andere an erster Stelle ein.
  • Ein arithmetischer Überlauf löst in SQL eine Ausnahme aus, nicht aber in Java.
  • SQL-Datenbanken haben variable Mindest- und Maximalbereiche für Gleitkommawerte, die von den Bereichen für Gleitkommawerte in der Programmiersprache Java abweichen können. Werte nahe der Bereichsgrenzen von Java Double können möglicherweise nicht in SQL übersetzt werden.
  • Java-Methoden können nicht in SQL übersetzt werden. Deshalb dürfen EJB-Standardabfragen keine Java-Methoden enthalten.
    Anmerkung: Nicht in SQL übersetzbare Funktionen können nur im dynamischen EJB-Abfrageservice verwendet werden. Zu solchen Funktionen gehören Java-Methoden und Umsetzer oder Composer, die für die Zuordnung von Enterprise-Beans zu relationalen Datenbank (RDBs) verwendet werden. Eine Standardabfrage mit find oder select, die eine dieser Funktionen verwendet, schlägt während der Implementierung mit der Nachricht "Cannot push down query" fehl. (Sie können dieses Problem beheben, indem Sie die Abfrage oder die Zuordnung ändern.) Die Laufzeitumgebung für dynamische Abfragen verarbeitet die Abfrage jedoch, indem Sie die Operation mit der Funktion im Anwendungsserver durchführt.

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cque_restrict
Dateiname:cque_restrict.html