Hi,
Here is my case: (I am using OJB 1.0.3) <class-descriptor class="Parent"> <field-descriptor name="firstName" column="... " jdbc-type="VARCHAR" primarykey="true" /> <field-descriptor name="lastName" column="..." jdbc-type="VARCHAR" primarykey="true" /> <collection-descriptor name="allChildren" collection-class="org.apache.ojb.broker.util.collections.ManageableArray List" element-class-ref="Child" > <inverse-foreignkey field-ref="lastName" /> </collection-descriptor> </class-descriptor> <class-descriptor class="Child"> <field-descriptor name="firstName" column="..." jdbc-type="VARCHAR" primarykey="true" /> <field-descriptor name="lastName" column="..." jdbc-type="VARCHAR" primarykey="true" /> </class-descriptor> And here is a problem: When retrieving ReportQueryByCriteria qry = QueryFactory.newReportQuery(Parent.class, new String[] {"firstName","allChildren.firstName"}, criteria, false); The query fails with Exception: java.lang.ArrayIndexOutOfBoundsException 1 Stack Trace: * org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$Join.appendJoinE qualities(SqlQueryStatement.java:2059) * org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendJoinSQL92( SqlQueryStatement.java:1555) * org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendTableWithJ oins(SqlQueryStatement.java:1498) * org.apache.ojb.broker.accesslayer.sql.SqlSelectStatement.getStatement(Un known Source) * org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl.getPrepare dSelectStatement(Unknown Source) * org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown Source) * org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown Source) * org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown Source) * org.apache.ojb.broker.accesslayer.ReportQueryRsIterator.<init>(Unknown Source) * org.apache.ojb.broker.core.ReportRsIteratorFactoryImpl.createRsIterator( Unknown Source) * org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery( Unknown Source) * org.apache.ojb.broker.core.PersistenceBrokerImpl.getReportQueryIteratorF romQuery(Unknown Source) * org.apache.ojb.broker.core.PersistenceBrokerImpl.getReportQueryIteratorB yQuery(Unknown Source) * org.apache.ojb.broker.core.DelegatingPersistenceBroker.getReportQueryIte ratorByQuery(Unknown Source) * org.apache.ojb.broker.core.DelegatingPersistenceBroker.getReportQueryIte ratorByQuery(Unknown Source) The additional debugging revealed that inside of appendJoinEqualities(): Join.appendJoinEqualities(SELECT A0.FNAME,A1.FNAME FROM PARENT_TABLE A0 INNER JOIN CHILD_TABLE A1 ON ) leftKeys.length = 2 rightKeys.length = 1 The same configuration works fine when I am doing Parent p = new Parent("Silvester","Stallone"); Query query = new QueryByIdentity(p); p = broker.getObjectByQuery(query); p.getAllChildren() -> SUCCESS!!! Please advice if it is a bug or... I am not doing something right, Thank you! Sergey ********************** ** LEGAL DISCLAIMER ** ********************** This E-mail message and any attachments may contain legally privileged, confidential or proprietary information. If you are not the intended recipient(s), or the employee or agent responsible for delivery of this message to the intended recipient(s), you are hereby notified that any dissemination, distribution or copying of this E-mail message is strictly prohibited. If you have received this message in error, please immediately notify the sender and delete this E-mail message from your computer.