|
Hi, I'll give you some insight in what I tried. DataContext dataContext = this.createDataContext(); String sql = "select ... from table1 join table 2 ..."; SQLTemplate query = new SQLTemplate(Table1Object.class, sql); query.addPrefetch(table2.RELATION_PROPERTY).setSemantics(PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS); query.setPageSize(1000); ResultIterator iterator = dataContext.performIteratedQuery(query); while (iterator.hasNextRow()) { DataRow dataRow = (DataRow) iterator.nextDataRow(); Table1Object table1 = (Table1Object) dataContext.objectFromDataRow(Table1Object.class, dataRow, false); List<Table2Object> list = table1.getTable2Objects(); for (Table2Object t2o:list) { System.out.println(t2o.getName()); } } When the for loop starts and gets the iterator from the list, then a separate query is executed, indicating that the prefetching didn't work. tx Hans Andrey Razumovsky wrote: Hi, I think the best in your case would be using disjoint prefetching; http://cayenne.apache.org/doc20/prefetching.html This way both table data will be returned altogether (in same db row), so you will be able to iterate though them at the same time.I also highly encourage you to try today-released Cayenne3.0 beta. It proved to be stable and many prefetching (ant other!) improvements were made. Check the main site! 2009/11/10 Hans Pikkemaat <[email protected]> --
10 jaar TSi Solutions
... marktleider in het automatiseren en outsourcen van werkprocessen in de reisbranche ... toonaangevende partij voor het verzamelen, structureren en beschikbaarstellen van reiscontent ... Reisrevue Innovatieveer 2008 - Veervolle vermelding ... Winnaar Reisrevue Innovatieveer 2009 ... Top 20 positie in 2008 Deloitte Technology Fast50 Nederland ... Top 10 positie in 2009 Deloitte Technology Fast50 Benelux ... genomineerd voor Technology 500 EMEA 2009 TSi
Solutions is de handelsnaam van Travel Service
International b.v.[KvK 06091935]
DISCLAIMER: De informatie opgenomen in dit bericht kan
vertrouwelijk zijn en is uitsluitend bestemd voor de geadresseerde.
Indien u dit bericht onterecht ontvangt, wordt u verzocht de inhoud niet te gebruiken en de afzender direct te informeren door het bericht te retourneren. The information contained in this message may be
confidential and is intended to be exclusively for the addressee.
Should you receive this message unintentionally, please do not use the contents herein and notify the sender immediately by return e-mail. |
- complex query vs performIteratedQuery vs Prefetching Hans Pikkemaat
- Re: complex query vs performIteratedQuery vs Prefet... Andrey Razumovsky
- Re: complex query vs performIteratedQuery vs Pr... Hans Pikkemaat
- Re: complex query vs performIteratedQuery v... Andrey Razumovsky
- Re: complex query vs performIteratedQue... Hans Pikkemaat
- Re: complex query vs performIterat... Hans Pikkemaat
- Re: complex query vs performIt... Andrus Adamchik
- Re: complex query vs perfo... Hans Pikkemaat
- Re: complex query vs perfo... Andrus Adamchik
- Re: complex query vs perfo... Hans Pikkemaat
- Re: complex query vs perfo... Andrey Razumovsky
- Re: complex query vs perfo... Andrus Adamchik
- Re: complex query vs perfo... Hans Pikkemaat


