31.6.3. Overriding the EJB-QL to SQL Mapping
jbosscmp-jdbc.xmlfile. The finder or select is still required to have an EJB-QL declaration, but the
ejb-qlelement can be left empty. Currently the SQL can be overridden with JBossQL, DynamicQL, DeclaredSQL or a BMP style custom
ejbFindmethod. All EJB-QL overrides are non-standard extensions to the EJB specification, so use of these extensions will limit portability of your application. All of the EJB-QL overrides, except for BMP custom finders, are declared using a
queryelement in the jbosscmp-jdbc.xml file. The content model is shown in Figure 31.11, “The jbosscmp-jdbc query element content model”.
Figure 31.11. The jbosscmp-jdbc query element content model
- description: An optional description for the query.
- query-method: This required element specifies the query method that being configured. This must match a
query-methoddeclared for this entity in the
- jboss-ql: This is a JBossQL query to use in place of the EJB-QL query. JBossQL is discussed in Section 31.6.4, “JBossQL”.
- dynamic-ql: This indicated that the method is a dynamic query method and not an EJB-QL query. Dynamic queries are discussed in Section 31.6.5, “DynamicQL”.
- declared-sql: This query uses declared SQL in place of the EJB-QL query. Declared SQL is discussed in Section 31.6.6, “DeclaredSQL”.
- read-ahead: This optional element allows one to optimize the loading of additional fields for use with the entities referenced by the query. This is discussed in detail in Section 31.7, “Optimized Loading”.