Hi Dennis,

if I summarize your posted sql-queries we will get

1.0.4:
FROM organisation A0
FROM country A0 WHERE A0.id = ?
FROM tablemodel A0 WHERE A0.name = ?
FROM field A0 WHERE A0.id = ?
FROM fieldtype A0 WHERE A0.id = ?
FROM reference A0 WHERE A0.parenttablemodelid = ?
FROM rendertype A0 WHERE A0.id = ?
FROM tablemodel A0 WHERE A0.id IN (?,?,?,?)
FROM field A0 WHERE A0.id IN (?,?)
FROM fieldtype A0 WHERE A0.id = ?
FROM field A0 WHERE A0.parenttablemodelid = ?
FROM fieldtype A0 WHERE A0.id IN (?,?,?)
FROM tablemodel A0 WHERE A0.id = ?

rc7:
FROM organisation A0
FROM country A0 WHERE A0.id = ?
FROM tablemodel A0 WHERE A0.name = ?
FROM field A0 WHERE A0.parenttablemodelid = ?
FROM fieldtype A0 WHERE A0.id IN (?,?)
FROM reference A0 WHERE A0.parenttablemodelid = ?

Seems that lazy loading works, because there is no query for the m:n and 1:n references. Think the other queries are the result of the 1:1 references and additional queries if the referenced object has references too or some prefetching stuff. If this is the case you could try to enable lazy loading for some 1:1 references too and check the generated queries again.

you post
> ProxyFactoryClass=org.apache.ojb.broker.core.proxy.ProxyFactoryCGLIBImpl
> ObjectCacheClass=org.apache.ojb.broker.cache.ObjectCacheDefaultImpl

did you notice that the ObjectCache configuration moved from OJB.properties to repository file between rc7 and 1.0.4? You have to declare the cache within the jdbc-connection-descriptor using a object-cache element.
http://db.apache.org/ojb/docu/guides/objectcache.html

regards,
Armin


Dennis Bekkering wrote:
Hello,

I recently switched from rc7 to 1.0.4 and lazy loading seem to happen any
more. Can someone please check my config out.

1.0.4 fires twice as much queries?

thanks.


sql output get all organisations 1.0.4

 just after clear cache
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.fax,
A0.fieldofinterest,A0.name,A0.noofemployee,A0.phone,A0.postaladress,
A0.postalcity,A0.postalzip,A0.url,A0.visitadress,A0.visitcity,A0.visitzip,
A0.chamberofcommerceno,A0.immediateparentid,A0.ultimateparentid,
A0.postalcountryid,A0.organisationbrancheid,A0.visitcountryid,
A0.organisationtypeid FROM organisation A0
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.code,A0.name,
A0.number FROM country A0 WHERE A0.id = ?
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.defaultvalue,
A0.fixheader,A0.groupby,A0.indescriptor,A0.name,A0.subtablesheight,
A0.descriptorfieldid,A0.defaultqueryid,A0.quicksearchqueryid FROM tablemodel
A0 WHERE A0.name = ?
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.defaultvalue,
A0.indescriptor,A0.name,A0.ordr,A0.showintable,A0.sortdown,A0.fieldtypeid,
A0.fieldcollectionid,A0.parenttablemodelid,A0.calculatedfieldid FROM field
A0 WHERE A0.id = ?
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.name,A0.typeFROM
fieldtype A0 WHERE
A0.id = ?
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.defaultvalue,
A0.name,A0.ordr,A0.property,A0.selectionpath,A0.showintable,
A0.parentcollectionmodelid,A0.innerselectid,A0.parenttablemodelid,
A0.rendertypeid,A0.entityid FROM reference A0 WHERE A0.parenttablemodelid =
?
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.name,
A0.referenceid FROM rendertype A0 WHERE A0.id = ?
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.defaultvalue,
A0.fixheader,A0.groupby,A0.indescriptor,A0.name,A0.subtablesheight,
A0.descriptorfieldid,A0.defaultqueryid,A0.quicksearchqueryid FROM tablemodel
A0 WHERE A0.id IN (?,?,?,?)
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.defaultvalue,
A0.indescriptor,A0.name,A0.ordr,A0.showintable,A0.sortdown,A0.fieldtypeid,
A0.fieldcollectionid,A0.parenttablemodelid,A0.calculatedfieldid FROM field
A0 WHERE A0.id IN (?,?)
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.name,A0.typeFROM
fieldtype A0 WHERE
A0.id = ?
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.defaultvalue,
A0.indescriptor,A0.name,A0.ordr,A0.showintable,A0.sortdown,A0.fieldtypeid,
A0.fieldcollectionid,A0.parenttablemodelid,A0.calculatedfieldid FROM field
A0 WHERE A0.parenttablemodelid = ?
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.name,A0.typeFROM
fieldtype A0 WHERE
A0.id IN (?,?,?)
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.defaultvalue,
A0.fixheader,A0.groupby,A0.indescriptor,A0.name,A0.subtablesheight,
A0.descriptorfieldid,A0.defaultqueryid,A0.quicksearchqueryid FROM tablemodel
A0 WHERE A0.id = ?

second time

[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.fax,
A0.fieldofinterest,A0.name,A0.noofemployee,A0.phone,A0.postaladress,
A0.postalcity,A0.postalzip,A0.url,A0.visitadress,A0.visitcity,A0.visitzip,
A0.chamberofcommerceno,A0.immediateparentid,A0.ultimateparentid,
A0.postalcountryid,A0.organisationbrancheid,A0.visitcountryid,
A0.organisationtypeid FROM organisation A0
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.id,A0.lastmodified,A0.creationdate,A0.version,A0.code,A0.name,
A0.number FROM country A0 WHERE A0.id = ?


sql output get all organisations rc7

 just after clear cache
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.organisationbrancheid,A0.ultimateparentid,A0.phone,
A0.immediateparentid,A0.visitcountryid,A0.visitzip,A0.postalzip,A0.visitcity
,A0.visitadress,A0.postaladress,A0.fax,A0.id,A0.version,A0.postalcountryid,
A0.postalcity,A0.chamberofcommerceno,A0.organisationtypeid,A0.url,
A0.noofemployee,A0.name,A0.creationdate,A0.lastmodified,A0.fieldofinterestFROM
organisation A0
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.code,A0.name,A0.creationdate,A0.id,A0.number,A0.version,
A0.lastmodified FROM country A0 WHERE A0.id = ?
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.indescriptor,A0.groupby,A0.defaultqueryid,A0.descriptorfieldid
,A0.id,A0.quicksearchqueryid,A0.version,A0.fixheader,A0.name,A0.creationdate
,A0.lastmodified,A0.defaultvalue,A0.subtablesheight FROM tablemodel A0 WHERE
A0.name = ?
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.ordr,A0.property,A0.selectionpath,A0.id,A0.version,
A0.innerselectid,A0.rendertypeid,A0.parentcollectionmodelid,
A0.parenttablemodelid,A0.entityid,A0.name,A0.creationdate,A0.showintable,
A0.lastmodified,A0.defaultvalue FROM reference A0 WHERE
A0.parenttablemodelid = ?
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.indescriptor,A0.ordr,A0.id,A0.version,A0.calculatedfieldid,
A0.sortdown,A0.parenttablemodelid,A0.fieldtypeid,A0.name,A0.creationdate,
A0.showintable,A0.fieldcollectionid,A0.lastmodified,A0.defaultvalue FROM
field A0 WHERE A0.parenttablemodelid = ?
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.type,A0.name,A0.creationdate,A0.id,A0.version,A0.lastmodifiedFROM
fieldtype A0 WHERE
A0.id IN (?,?)

 second time
[org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
SQL:SELECT A0.organisationbrancheid,A0.ultimateparentid,A0.phone,
A0.immediateparentid,A0.visitcountryid,A0.visitzip,A0.postalzip,A0.visitcity
,A0.visitadress,A0.postaladress,A0.fax,A0.id,A0.version,A0.postalcountryid,
A0.postalcity,A0.chamberofcommerceno,A0.organisationtypeid,A0.url,
A0.noofemployee,A0.name,A0.creationdate,A0.lastmodified,A0.fieldofinterestFROM
organisation A0


org descriptor

<class-descriptor class="com.myvision.model.Organisation"
table="organisation">
  <field-descriptor name="id" column="id" jdbc-type="INTEGER"
primarykey="true" autoincrement="true"/>
  <field-descriptor name="lastModified" column="lastmodified"
jdbc-type="TIMESTAMP"/>
  <field-descriptor name="creationDate" column="creationdate"
jdbc-type="TIMESTAMP"/>
  <field-descriptor name="version" column="version" jdbc-type="INTEGER"/>
  <field-descriptor name="fax" column="fax" jdbc-type="VARCHAR"/>
  <field-descriptor name="fieldOfInterest" column="fieldofinterest"
jdbc-type="LONGVARCHAR"/>
  <field-descriptor name="name" column="name" jdbc-type="VARCHAR"/>
  <field-descriptor name="noOfEmployee" column="noofemployee"
jdbc-type="INTEGER"/>
  <field-descriptor name="phone" column="phone" jdbc-type="VARCHAR"/>
  <field-descriptor name="postalAdress" column="postaladress"
jdbc-type="VARCHAR"/>
  <field-descriptor name="postalCity" column="postalcity"
jdbc-type="VARCHAR"/>
  <field-descriptor name="postalZip" column="postalzip"
jdbc-type="VARCHAR"/>
  <field-descriptor name="url" column="url" jdbc-type="VARCHAR"/>
  <field-descriptor name="visitAdress" column="visitadress"
jdbc-type="VARCHAR"/>
  <field-descriptor name="visitCity" column="visitcity"
jdbc-type="VARCHAR"/>
  <field-descriptor name="visitZip" column="visitzip" jdbc-type="VARCHAR"/>
  <field-descriptor name="chamberOfCommerceNo" column="chamberofcommerceno"
jdbc-type="VARCHAR"/>
  <reference-descriptor name="immediateParent" class-ref="
com.myvision.model.Organisation">
    <foreignkey field-ref="immediateParentId"/>
  </reference-descriptor>
  <field-descriptor name="immediateParentId" column="immediateparentid"
jdbc-type="INTEGER"/>
  <reference-descriptor name="ultimateParent" class-ref="
com.myvision.model.Organisation ">
    <foreignkey field-ref="ultimateParentId"/>
  </reference-descriptor>
  <field-descriptor name="ultimateParentId" column="ultimateparentid"
jdbc-type="INTEGER"/>
  <reference-descriptor name="postalCountry" class-ref="
com.myvision.model.Country">
    <foreignkey field-ref="postalCountryId"/>
  </reference-descriptor>
  <field-descriptor name="postalCountryId" column="postalcountryid"
jdbc-type="INTEGER"/>
  <reference-descriptor name="organisationBranche" class-ref="
com.myvision.model.OrganisationBranche">
    <foreignkey field-ref="organisationBrancheId"/>
  </reference-descriptor>
  <field-descriptor name="organisationBrancheId"
column="organisationbrancheid" jdbc-type="INTEGER"/>
  <reference-descriptor name="visitCountry" class-ref="
com.myvision.model.Country ">
    <foreignkey field-ref="visitCountryId"/>
  </reference-descriptor>
  <field-descriptor name="visitCountryId" column="visitcountryid"
jdbc-type="INTEGER"/>
  <reference-descriptor name="organisationType" class-ref="
com.myvision.model.OrganisationType">
    <foreignkey field-ref="organisationTypeId"/>
  </reference-descriptor>
  <field-descriptor name="organisationTypeId" column="organisationtypeid"
jdbc-type="INTEGER"/>
  <collection-descriptor name="projectList" element-class-ref="
com.myvision.model.Project " auto-retrieve="true" auto-update="true"
proxy="true" auto-delete="false">
    <inverse-foreignkey field-ref="parentOrganisationId"/>
  </collection-descriptor>
  <collection-descriptor name="contactList" element-class-ref="
com.myvision.model.Contact" auto-retrieve="true" auto-update="true"
proxy="true" auto-delete="false">
    <inverse-foreignkey field-ref="parentOrganisationId"/>
  </collection-descriptor>
  <collection-descriptor name="bankAccountList" element-class-ref="
com.myvision.model.BankAccount " auto-retrieve="true" auto-update="true"
proxy="true" auto-delete="false">
    <inverse-foreignkey field-ref="parentOrganisationId"/>
  </collection-descriptor>
  <collection-descriptor name="smsMessageList" element-class-ref="
com.myvision.model.SmsMessage" auto-retrieve="true" auto-update="true"
proxy="true" auto-delete="false">
    <inverse-foreignkey field-ref="parentOrganisationId"/>
  </collection-descriptor>
</class-descriptor>


OJB.properties:

ProxyFactoryClass=org.apache.ojb.broker.core.proxy.ProxyFactoryCGLIBImpl
ObjectCacheClass=org.apache.ojb.broker.cache.ObjectCacheDefaultImpl

class

<class-descriptor class="com.myvision.model.Note " table="note">

one2many

  <collection-descriptor name="declarationSheetLines" element-class-ref="
com.myvision.model.DeclarationSheetLine " auto-retrieve="true"
auto-update="true" proxy="true" auto-delete="false">
    <inverse-foreignkey field-ref="parentDeclarationSheetId"/>
  </collection-descriptor>

many2many

  <collection-descriptor name="attachmentList" element-class-ref="
com.myvision.model.Attachment" auto-retrieve="true" auto-update="true"
proxy="true" indirection-table="note_attachmentlist_2_attachment">
    <fk-pointing-to-this-class column="attachmentListId"/>
    <fk-pointing-to-element-class  column="attachmentId"/>
  </collection-descriptor>

ref

  <reference-descriptor name="parentTableModel" class-ref="
com.myvision.model.TableModel">

mvg,
Dennis


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to