EJB QL
# EJB QL

EJB QL oder EJB-QL (Enterprise Java Beans Query Language) ist eine Abfragesprache für Enterprise Java Beans (EJB). Sie wird in Jakarta-EE-Anwendungen angewendet. Im Vergleich zu SQL ist sie weniger komplex, aber auch nicht so mächtig.

## Geschichte

Insbesondere EJB3-QL wurde von der Abfragesprache von Hibernate, Hibernate Query Language HQL, beeinflusst.

## Unterschiede zu SQL

Die Syntax der EJB QL ist ähnlich der SQL. Die verwendeten Abfragen unterscheiden sich aber von der relationellen Sprache SQL, welche auf dem relationellen Modell aufbauen. EJB QL verwendet stattdessen das so genannte "abstrakte Schema" der Enterprise Java Beans. Eine SQL-Abfrage enthält Tabellen, sowie deren Zeilen und Spalten. Im Gegensatz dazu beinhalten die EJB-QL-Abfragen EJBs, sowie deren persistente Zustände und Relationen. Das Ergebnis einer SQL-Abfrage sind Zeilen mit einer fixen Anzahl von Spalten. Das Ergebnis einer EJB-QL-Abfrage sind Objekte einer bestimmten Klasse oder eine Ansammlung von Werten, welche von einem CMP-Feld abgerufen wurden.

## Quellen

* ↑ Siehe Introduction (p. 4) in »expert one-on-one: J2EE Design and Development«, (c) 2002 wrox press.
* ↑ Chapter 7. EJB-QL: The Object Datenbankabfragesprache
* ↑ ADVANCED EJB QL: SQL vs. EJB QL: Relational and Object Datenbankabfragespraches (Memento vom 12. April 2009 im Internet Archive)
