1 Reply Latest reply on Nov 25, 2004 5:43 AM by Johan Borchers

    Left-join read-ahead

    Yevgen Bushuyev Newbie

      Hi.
      Could somebody provide a sample app with working Left-join read-ahead mechanism for jboss 4.0? I.e. it should generate LEFT OUTER JOIN clauses in resulting SQL query as it is descirbed in http://www.jboss.org/wiki/Wiki.jsp?page=LeftJoinReadAhead

      Btw, as far as i can see in the sources org.jboss.ejb.plugins.cmp.jdbc.SQLUtil.LEFT_OUTER_JOIN is used in the JDBCLoadEntityCommand.getDeepSQL only, which is commented out completely ... Am i missing something?

      Thanx.

      wbr, evgen.

        • 1. Re: Left-join read-ahead
          Johan Borchers Newbie

          I'm using 3.2.6. In the example query I always want to read the info of 2 parent EJB's when selecting specific entities. So the query element looks like

          <query>
           <query-method>
           <method-name>findByNumber</method-name>
           <method-params>
           <method-param>java.lang.String</method-param>
           </method-params>
           </query-method>
           <read-ahead>
           <strategy>on-find</strategy>
           <page-size>64</page-size>
           <eager-load-group>all</eager-load-group>
           <left-join cmr-field = "type" eager-load-group = "all"></left-join>
           <left-join cmr-field = "archive" eager-load-group = "all"></left-join>
           </read-ahead>
          </query>
          


          The <page-size>64</page-size is only useful for loading fields that are not in an eager load group. So in my example the page size is not needed because I have small EJB's with a small amount of entities returned. If you have a large EJB with fields that are not needed then you better do something with on-load, lazy the page size and lazy loading.

          Johan.