EJB 1.1 仕様では、個々のアプリケーションサーバーに対する検索メソッド用のクエリーを形成および表現するための方法や言語が残されています。多くのアプリケーションサーバーベンダーでは、開発者が SQL を使用してクエリーを作成することを可能にしていますが、特定のアプリケーションサーバー製品に固有の独自言語を使用している場合もあります。このようにクエリーの実装が混在しているため、アプリケーションサーバー間の不整合が生じています。
EJB 2.0 仕様では、こうした不整合や欠点の多くを修正するために、EJB Query Language、つまり EJB QL と呼ばれるクエリー言語が導入されています。EJB QL は SQL92 に基づいています。EJB QL は、特にコンテナ管理による持続性を備えたエンティティー Bean に対して、検索メソッドと選択メソッドの両方の形式で、クエリーメソッドを定義します。EJB QL が SQL より優れている主な点は、EJB コンテナにまたがる移植性と、エンティティー Bean の関係をナビゲートする機能です。