So the map is like a javascript map function that will take in an (Object
[] ) as a parameter and return an objEntityE that I can make using
objectContext.newObject(EntityE.class) and filling in the
variables manually using the.passed in Object[];

On Thu, Feb 1, 2024 at 2:43 AM Jurgen Doll <jur...@ivoryemr.co.za> wrote:

> If we were getting DataRow(s) returned then yes, but with a column[] no,
> and as far as I know there's no way to restructure the ObjectSelect query
> to return suitable DataRow(s).
>
> Alternatively there is a way to do the transformation as part of the
> query
> with:
>
> List< OBJECT_E > results = ObjectSelect.query( ObjEntityA.class )
> .columns( .... )
> .where( .... )
> .map( col -> createObjectE( col ) )
> .select( context );
>
>
>
> On Wed, 31 Jan 2024 18:26:46 +0200, Christian Gonzalez
> <christian.gonza...@smartscrubs.com> wrote:
>
> > Unfortunately the relationship between ObjectEntityE and ObjectEntityA is
> > only one way and it's going from A to E not the other way around which
> > was
> > one of the reasons why the query was originally done using raw SQL
> > statements. Is there a way of manually doing what I'm imagining object
> > select does in the background when we specify ObjEntity.class in the
> > query?
> >
> >
> > On Wed, Jan 31, 2024 at 12:21 AM Jurgen Doll <jur...@ivoryemr.co.za>
> > wrote:
> >
> >> Hi Christian
> >>
> >> Since the selected columns are all that’s required for ObjEntityE and
> >> there’s a simple relationship between ObjEntityE and ObjEntityA we
> >> should
> >> be able to just get ObjEntityE directly:
> >>
> >> List<ObjEntityE> results = ObjectSelect.query( ObjEntityE.class )
> >> .where( ObjEntityE.PROP_FOR_OBJ_A
> >>      .dot( ObjEntityA.PROP_FOR_OBJ_B )
> >>      .dot( ObjEntityB.PROP_FOR_OBJ_C )
> >>      .dot( ObjEntityC.PROP_FOR_OBJ_D )
> >>      .dot( ObjEntityD.PROP_B )
> >>      .eq( "somevalue" ) )
> >> .select( context );
> >>
> >> Regards
> >> Jurgen
> >>
> >>
> >> From: Christian Gonzalez
> >> Sent: Tuesday, 30 January 2024 18:22
> >> To: user@cayenne.apache.org
> >> Subject: Re: Complicated SQL queries
> >>
> >> Sorry for the late follow up, but this query did return the rows I
> >> wanted
> >> using purely cayenne expressions and object select rather than
> creating
> >> a
> >> new objEntity in the model. My last question is if there is any fast
> >> way to
> >> convert the returned Array Objects into the ObjEntity class for
> >> ObjectEntityA. The three rows should be the only properties in the
> >> class so
> >> I was wondering if there was a faster way to automatically convert them
> >> rather than having to create a new Object using
> objectContext.newObject
> >> and
> >> manually setting the values.
> >>
> >> On Mon, Jan 22, 2024 at 12:19 AM Jurgen Doll <jur...@ivoryemr.co.za>
> >> wrote:
> >>
> >> > Ahh, my bad again - I missed the whole point of using ObjectSelect
> >> > somehow, probably because it's difficult to explain without having
> >> your
> >> > model. Anyways here's a shot at it, conceptually the same as what
> you
> >> did
> >> > in the modeller:
> >> >
> >> > List<Object[]> results = ObjectSelect.query( ObjEntityA.class )
> >> > .columns( ObjEntityA.PROP_FOR_OBJ_E.dot( ObjEntityE.PROP_A ),
> >> >                     ObjEntityA.PROP_FOR_OBJ_E.dot( ObjEntityE.PROP_B
> >> ),
> >> >                     ObjEntityA.PROP_FOR_OBJ_E.dot( ObjEntityE.PROP_C
> >> ) )
> >> > .where(  ObjEntityA.PROP_FOR_OBJ_B.dot( ObjEntityB.PROP_FOR_OBJ_C
> >> ).dot(
> >> > ObjEntityC.PROP_FOR_OBJ_D )
> >> >                   .dot( ObjEntityD.PROP_B )  // this is t3.varB
> >> >                   .eq( "somevalue" ) )
> >> > .select( context );
> >> >
> >> >
> >> >
> >> > On Fri, 19 Jan 2024 22:45:24 +0200, Christian Gonzalez
> >> > <christian.gonza...@smartscrubs.com> wrote:
> >> >
> >> > > Looks like it worked, thank you. It is definitely an interesting
> >> way of
> >> > > doing it although I'm not sure about how I feel about having to
> >> make a
> >> > > new
> >> > > entity every time a query like this is used but hopefully it won't
> >> be
> >> too
> >> > > often.
> >> > >
> >> > > Thank you for your help.
> >> > >
> >> > >
> >> > > On Wed, Jan 17, 2024 at 11:08 AM Jurgen Doll <jur...@ivoryemr.co.za
> >
> >> > > wrote:
> >> > >
> >> > >> Ahh, sorry my bad I didn't see the t0 for tableE.
> >> > >>
> >> > >> There may be other ways to do it but I think adding t3.varB as an
> >> > >> attribute to the object entity might be the simplest.
> >> > >>
> >> > >> Regards
> >> > >> Jurgen
> >> >
> >>
> >>
>
>
> --
> Using Opera's mail client: http://www.opera.com/mail/
>

Reply via email to