The manual hydration is the problem, I'm not really sure how to accomplish it
On May 22, 8:11 am, Gareth McCumskey <gmccums...@gmail.com> wrote: > You mentioned you manually created the join but the doSelect returns > nothing. From my experience with Propel 1.2 you would need to use a > doSelectRS to return the resultset. But in 1.3 you use doSelectStmt() to run > your query with join and get aresaultset which you can then hydrate yourself > manually. > > Would this help? > > > > On Thu, May 21, 2009 at 10:54 PM, Crafty_Shadow <vankat...@gmail.com> wrote: > > > Thanks for the interest in my problem, Richtermister. > > The code I have shown above accounts only for a small part of my > > model, but I thought it would be sufficient to convey the point. There > > really isn't anything special about the Option 0,1,2,3,... etc, but I > > will provide you with as much information as I can considering the > > nature of the project > > Consider the following: > > The Record model accounts for a particular governmental system. It has > > the name and address of the person who submitted the request, an > > unique number, and a few other miscellaneous fields. > > There is a second model, RecordCriteria, tied in a 1:1 relationship > > with the first model. It has only boolean fields representing > > different sets of requirements that the applicant must meet, and a > > single float field that calculates the "weight" of the application, > > based on the requirements. > > > There are MANY queries run on those 2 tables, and often a lot of > > records have to be displayed at once. Of course, this results in an > > additional query being executed for every single record that I show. > > This should really be avoided. It results in over 800 queries on one > > particular page, where about 10 should suffice. > > > Normally Propel provides doSelectJoin(related_table) methods, and when > > I was designing the database, I believed that it would do so for the > > 1:1 relation too, providing something like > > RecordPeer::doSelectJoinRecordCriteria(). I was wrong. No automatic > > method for joining the related table is available. > > > So my question is simply, how to do a custom join for 1:1 in Propel > > 1.3, in a fashion similar to what David Ashwood purposed. As I > > mentioned, the resources he provided are unfortunately not applicable > > to Propel 1.3. > > > On May 21, 8:57 pm, Richtermeister <nex...@gmail.com> wrote: > > > Hey Crafty, > > > > I think one issue is that it's not really clear what you're trying to > > > do.. > > > I have no idea what this option0 / option1 setup is all about.. > > > > If you can give an example of what you're trying to do, maybe we can > > > help better. > > > > Daniel > > > > On May 20, 3:20 pm, Crafty_Shadow <vankat...@gmail.com> wrote: > > > > > Once again, a shameless bump! > > > > > I tried several approaches to no avail. > > > > Halp! > > > > > On May 19, 12:48 pm, Crafty_Shadow <vankat...@gmail.com> wrote: > > > > > > Thanks for the links, but those are of no help to me. > > > > > > Each and every single of the resources you have pointed me to are > > > > > about propel 1.2. > > > > > As I mentioned in my original post, I have written such behavior for > > > > > propel 1.2, but the problem is that I'm currently dealing with 1.3, > > > > > which is quite different. > > > > > > On May 19, 12:09 pm, "David Ashwood" <da...@inspiredthinking.co.uk> > > > > > wrote: > > > > > > > Some links that talk about what you're after: > > >http://forum.symfony-project.org/index.php/m/14692/http://groups.goog.... > > .. > > > > > > cb274ehttp:// > > trac.symfony-project.org/wiki/ApplyingCustomJoinsInDoSelect > > > > > > > And a plugin written that appears to do what you're after: > >http://www.symfony-project.org/plugins/sfPropelImpersonatorPlugin > > > > > > > Alternatively there's also the DbFinder plugin that gives you more > > control > > > > > > over what's happening and a very good way to have an app that > > allows you to > > > > > > switch ORM later should you wish to jump to Doctrine (far cleaner > > and more > > > > > > flexible than Propel imho): > > > > > > >http://www.symfony-project.org/plugins/DbFinderPlugin > > > > > > > -----Original Message----- > > > > > > From: symfony-users@googlegroups.com [mailto: > > symfony-us...@googlegroups.com] > > > > > > > On Behalf Of Crafty_Shadow > > > > > > Sent: 19 May 2009 10:52 > > > > > > To: symfony users > > > > > > Subject: [symfony-users] Re: Propel and 1:1 relationships > > > > > > > I am going to perform what is know as "a shameless bump". > > > > > > I believe that this problem requires discussion, as having a 1:1 > > > > > > relationship should be fairly common, and it is only natural to > > seek > > > > > > way optimize it's workings. > > > > > > > On May 17, 7:14 pm, Crafty_Shadow <vankat...@gmail.com> wrote: > > > > > > > Hey guys, > > > > > > > I have the following question - how do I makepropelhydrate1:1 > > > > > > > relationships automatically ? > > > > > > > When we have a normal 1:m relationship the peer class provides > > methods > > > > > > > like doSelectJoinWhaever, but no such method is available when > > using a1:1 > > > > > > > The relation itself works just as it's expected to, but every > > call to > > > > > > > get the related object results in an extra query. > > > > > > > > from my schema.yml: > > > > > > > > record: > > > > > > > id: ~ > > > > > > > sequential_number: { type: integer, required: true } > > > > > > > status: { type: smallint, required: true } > > > > > > > record_option: > > > > > > > id: { type: integer, primaryKey: true, > > foreignTable: > > > > > > > record, foreignReference: id, required: true, onDelete: cascade } > > > > > > ##1:1relational mapping > > > > > > > option0: { type: boolean, default: false } > > > > > > > option1: { type: boolean, default: false } > > > > > > > > $record->getRecordOption()->getOption0(); <- an extra query > > here, and > > > > > > > given that I have to show MANY records at once (many being a > > random > > > > > > > number between 10 and 5000, without pagination - as required by > > > > > > > application specifications) this could prove to be a pretty > > serious > > > > > > > issue > > > > > > > > Simply adding a join clause to the criteria does nothing, I > > suppose I > > > > > > > need to override the hydration. > > > > > > > I have used the method described > > > > > > here: > >http://trac.symfony-project.org/wiki/ApplyingCustomJoinsInDoSelecton > > > > > > > previous projects, but this project usesPropel1.3 and this is > > forPropel1.2 > > > > > > > > Any help would be deeply appreciated > > -- > Gareth McCumskeyhttp://garethmccumskey.blogspot.com > twitter: @garethmcc --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to symfony-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~----------~----~----~----~------~----~------~--~---