Return-Path: Delivered-To: apmail-cocoon-dev-archive@www.apache.org Received: (qmail 20621 invoked from network); 4 Nov 2003 12:57:08 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 4 Nov 2003 12:57:08 -0000 Received: (qmail 2082 invoked by uid 500); 4 Nov 2003 12:57:04 -0000 Delivered-To: apmail-cocoon-dev-archive@cocoon.apache.org Received: (qmail 1750 invoked by uid 500); 4 Nov 2003 12:57:01 -0000 Mailing-List: contact dev-help@cocoon.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: dev@cocoon.apache.org Delivered-To: mailing list dev@cocoon.apache.org Received: (qmail 1729 invoked from network); 4 Nov 2003 12:56:55 -0000 Received: from unknown (HELO ags01.agsoftware.dnsalias.com) (216.6.48.60) by daedalus.apache.org with SMTP; 4 Nov 2003 12:56:55 -0000 Received: from ags01.agsoftware.dnsalias.com (localhost [127.0.0.1]) by ags01.agsoftware.dnsalias.com (8.12.8/8.12.8) with ESMTP id hA4CutIc032721 for ; Tue, 4 Nov 2003 06:56:55 -0600 Received: (from apache@localhost) by ags01.agsoftware.dnsalias.com (8.12.8/8.12.8/Submit) id hA4CusoC032719; Tue, 4 Nov 2003 06:56:54 -0600 X-Authentication-Warning: ags01.agsoftware.dnsalias.com: apache set sender to agallardo@agsoftware.dnsalias.com using -f Received: from 10.0.0.5 (SquirrelMail authenticated user agallardo) by ags01.agsoftware.dnsalias.com with HTTP; Tue, 4 Nov 2003 06:56:54 -0600 (CST) Message-ID: <34052.10.0.0.5.1067950614.squirrel@ags01.agsoftware.dnsalias.com> Date: Tue, 4 Nov 2003 06:56:54 -0600 (CST) Subject: Re: Woody: managing persistence sessions From: "Antonio Gallardo" To: In-Reply-To: <8EBC7ECD-0EBC-11D8-9ECD-0003935AD2EE@media.demon.co.uk> References: <33992.10.0.0.5.1067944218.squirrel@ags01.agsoftware.dnsalias.com> <8EBC7ECD-0EBC-11D8-9ECD-0003935AD2EE@media.demon.co.uk> X-Priority: 3 Importance: Normal X-Mailer: SquirrelMail (version 1.2.11) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_20031104065654_23911" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N ------=_20031104065654_23911 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Jeremy Quinn dijo: > > On Tuesday, November 4, 2003, at 11:10 AM, Antonio Gallardo wrote: > > Thanks for your feedback, Antonio. > >> Hi Jeremy: >> >> I use other approach in Flow. Example: >> >> function listform(form) { >> var factory = cocoon.getComponent(Packages.o.a.c....JdoPMF.ROLE); >> var bean = new Packages.test.forms.AreasList(); >> var handler = new Packages.test.forms.AreaHandler(); >> var criteria = new String (cocoon.request.criteria); >> >> handler.getList(bean, criteria, factory); // Read from DB > > OK, I think I understand your approach ..... AreaHandler.getList and > AreaHandler.setList open and close the session as required. (?), so > that the Session is actually closed before Form.showForm is called. >From your flow code in your first mail. I understand that "session" is a Hibernate session (line 2) that you get from the factory (line 1): var factory = cocoon.getComponent (PersistenceFactory.ROLE); var session = factory.createSession (); If this is correct this is similar to getting a PersistenManager in OJB. > Does OJB have a concept similar to Hibernate's 'lazy-initialisation'? Yep. You can choose if you wish all the resultSet at once or get them as you request it. Also you can define is the Bean will fill all the collections (references by Foreign Keys - or better called "details" in a "master-detail" relation). I thought this is "lazy-initialisations", right? I short OJB support all Hibernate support. I can said this because the project leader of OJB told that in a recent mail: > I have not even approached this issue yet, because currently our User > is not related to any other Tables, but it will be in the future ..... Yes. I am currently at this example (see attached PNG file): A form that create Roles for users. We have a subform for auth_permisions) and in each row of subform a a selection list to choose (auth_resources). Is this the idea? As we make a step in the application... (BTW, currently very slow because too many new things - OJB, JDO, Woody, Flow, JXPath .... but it is cool!) we tought how we can improve the overall. I think it is a nice experience. BTW, if you ask how I did the diagram. All I will said is: Druid (damn here is again!). Currently druid (CVS version) build all the JavaBeans (including Javadocs for them) and the O/R mapping for OJB. I am sure Drui can do this because I generated with them the currently database (71 tables with 383 fields). I thought this will be very boring writing it by hand. Fortunately, druid did this for me. :-D All you need to do is: Choose a target output dir click some options generate Java and OJB and the worse is in the command line you type: ant. and voila! you have a jar with all your beans + Javadocs of them. Note: The beans are also JDO enhanced. It looks very simple, right? ;-) > Does your AreaHandler clone the persistent properties into your Bean, > or does it merely make object references? Currently I am coping them because JDO will clean all the Beans I got from the Query. And here is when Apache Jarkarta commons-beanutils comes in the action! We can simply copy beans using: org.apache.commons.beanutils.PropertyUtils.copyProperties((Object)temp, (Object)qIter.next()); > AFAIU if you are using > lazy-initialisation, you would need to clone the values, to make sure > the SQL calls were made while your session was still open.. Yep. Best Regards, Antonio Gallardo ------=_20031104065654_23911 Content-Type: image/png; name="Authentication.png" Content-Disposition: attachment; filename="Authentication.png" Content-Transfer-Encoding: base64 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 AAAAAElFTkSuQmCC ------=_20031104065654_23911--