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
-~----------~----~----~----~------~----~------~--~---

Reply via email to