30.6.3. EJB-QL を SQL マッピングにオーバーライド
EJB-QL クエリは
jbosscmp-jdbc.xml
ファイルでオーバーライドできます。finder、または select は EJB-QL 宣言に必要ですが、ejb-ql
要素は空のままにして構いません。現在、SQL は JBossQL、DynamicQL、DeclaredSQL、または BMP スタイルカスタムの ejbFind
メソッドでオーバーライドできます。EJB-QL のオーバーライドは EJB の仕様に対して規格外の拡張子であるため、この拡張子を使用するとアプリケーションのポータビリティ(移植性)が制限されます。BMP カスタムファインダーを除く EJB-QL のオーバーライドはすべて、jbosscmp-jdbc.xml ファイルの query
要素を使用して宣言されます。コンテンツモデルを 図30.11「jbosscmp-jdbc query 要素のコンテンツモデル」に示します。
図30.11 jbosscmp-jdbc query 要素のコンテンツモデル
- description: クエリに対するオプションの記述子です。
- query-method: 必須の要素で、設定するクエリメソッドを指定します。これは
ejb-jar.xml
ファイルでこのエンティティに対して宣言されたquery-method
と一致する必要があります。 - jboss-ql: EJB-QL クエリの代わりに使用される JBossQL クエリです。JBossQL ついては 「JBossQL」で説明します。
- dynamic-ql:メソッドがダイナミッククエリであり、EJB-QL クエリではないことを示します。ダイナミッククエリについては、「DynamicQL」で説明しています。
- declared-sql: このクエリは EJB-QL の代わりに宣言した SQL を使用します。宣言した SQL については、「DeclaredSQL」で説明しています。
- read-ahead: この任意の要素により、クエリで参照したエンティティ付きで使用する追加フィールドのロードを最適化します。これについては、「最適化ローディング」で詳しく説明しています。