From: <Dav...@na...> - 2003-05-06 12:47:29
|
Julien, The JBossCMP book seems to indicate that this is not the case w/ commit option B: "JBossCMP assumes that there is more than one user of the database but keeps the context information about entities between transactions. This context information is used for optimizing loading of the entity. [20]This is the default commit option." is that wrong, or am I just misunderstanding it? (I would have assumed that the "context" info mentioned there was the list cache data). If so, why would on_load be any better than on_find -- just because you may load less data depending on when you stop iterating through the collection? julien> you can associate a read-ahead on_load with the size of the julien> limit parameter. But then you need to find a way to ensure that the on_load page-size in the deployment descriptor and the limit paramether your code passes in stay in sync. Can LIMIT take a literal? And wouldn't on_find work just as well in this case (since you're certain you're going to read all the returned entries unless an exception occurs). Dave julien viet <ju...@jb...> To: "Dav...@na..." <jbo...@li...> Sent by: cc: jbo...@li...ur Subject: Re[2]: [JBoss-user] Page by Page iteration ceforge.net 05/06/2003 07:41 AM Please respond to jboss-user Dnc> Can't you use read-ahead w/ on_load strategy? I.e., in jbosscmp-jdbc.xml, Dnc> have something like: this will not work because you cannot cache a collection between transactions. what you should try is the use of JBossQL limit offset : SELECT OBJECT(o) FROM object AS o ORDER BY o.id OFFSET ?1 LIMIT ?2 this will give you what you want. this will work efficiently on relatively small size collection < 10000. you can associate a read-ahead on_load with the size of the limit parameter. julien Dnc> Can't you use read-ahead w/ on_load strategy? I.e., in jbosscmp-jdbc.xml, Dnc> have something like: Dnc> <entity> Dnc> <ejb-name>MyEJB</ejb-name> Dnc> <query> Dnc> <query-method> Dnc> <method-name>findAll_paged</method-name> Dnc> <method-params/> Dnc> </query-method> Dnc> <jboss-ql><![CDATA[SELECT OBJECT(o) FROM my_table o ORDER BY o.somefield]]>></jboss-ql> Dnc> <read-ahead> Dnc> <strategy>on_load</strategy> Dnc> <page-size>20</page-size> Dnc> </read-ahead> Dnc> </query> Dnc> </entity> Dnc> Then your finder will pre-load the data for the first 20 rows into the Dnc> pre-load cache, and I believe that when you iterate to #21 it'll grab the Dnc> data for the next 20. Dnc> I'm not sure how this works when you throw CMR into the mix. Dnc> And of course, it's not portable. Dnc> Dave Dnc> "Brian McSweeney" Dnc> <bri...@au... To: <jbo...@li...> Dnc> > cc: Dnc> Sent by: Subject: [JBoss-user] Page by Page iteration Dnc> jbo...@li...ur Dnc> ceforge.net Dnc> 05/06/2003 05:51 AM Dnc> Please respond to Dnc> jboss-user Dnc> Hi everyone, Dnc> I'm looking for a little advice. I'm implementing a struts-jboss web app Dnc> which Dnc> uses page-by-page data iteration. On the ejb side I'm using session facades Dnc> with cmp & cmr entity beans. However, in order to get the relevant data Dnc> back Dnc> to iterate over, I currently have to utilise findAll, to retrieve a Dnc> collection of Dnc> entity beans. Dnc> This is surely not good - as the data gets large, I'm getting back Dnc> thousands Dnc> of ejbs, just to display the first 20 or 30 on the first page. I presume Dnc> the Dnc> correct way to do this with raw sql would be something like: Dnc> 1) Get a count of all the relevant rows Dnc> 2) Select the first 20 Dnc> 3) For each next page, select 20 offsetting at the relevant point. Dnc> Am I correct in this being the proper approach? Dnc> However, I haven't used raw sql with ejbs and I'm not sure how to. Dnc> Advice here please. Dnc> Finally, if I use raw sql, are stored procedures the correct way to go. Dnc> I've been told that they are considerably faster. Dnc> thanks for all your help, Dnc> Brian Dnc> ------------------------------------------------------- Dnc> This sf.net email is sponsored by:ThinkGeek Dnc> Welcome to geek heaven. Dnc> http://thinkgeek.com/sf Dnc> _______________________________________________ Dnc> JBoss-user mailing list Dnc> JBo...@li... Dnc> https://lists.sourceforge.net/lists/listinfo/jboss-user -- Best regards, julien mailto:ju...@jb... ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ JBoss-user mailing list JBo...@li... https://lists.sourceforge.net/lists/listinfo/jboss-user |