Re: Alias syntax
Franck Routier <[email protected]> Wed, 25 Mar 2009 12:25:12 +0100
| Newsgroups | gmane.comp.java.orm.simpleorm |
|---|---|
| Message-ID | <1237980312.23736.51.camel@franck-laptop> |
One caveat is that then the table will first be added with its default
alias, which might be used already...
So maybe we should really generate alias as firstletter+tables.size()...
Le mercredi 25 mars 2009 à 12:09 +0100, Franck Routier a écrit :
> Hi,
>
> I like the setAlias() solution, that changes the alias for the last
> added table.
>
> I also suggest to call it simply as().
>
> SQuery<Employee> subQ2 = new
> SQuery<Employee>(Employee.EMPLOYEE).as("emp")
> .join("emp", Employee.MANAGER, SSelectMode.SNONE).as("manager")
> .join("manager", Employee.DEPARTMENT)
> .eq(Department.MISSION, "Count Pennies")
> .descending("emp", Employee.SALARY);
>
> What do you think of this ?
>
>
> Le mercredi 25 mars 2009 à 20:55 +1000, [email protected] a écrit :
> > Hello Franck,
> >
> > I was just updating the white paper with
> >
> > SQuery<Employee> subQ2 = new
> > SQuery<Employee>(Employee.EMPLOYEE).setAlias("emp")
> > .join("manager", "emp", Employee.MANAGER, SSelectMode.SNONE)
> > .join("dept", "manager", Employee.DEPARTMENT)
> > .eq("dept", Department.MISSION, "Count Pennies")
> > .descending("emp", Employee.SALARY);
> >
> > I note that we should not really need to specify the "dept" alias at
> > all. But it cannot be removed from the second join statement because
> > manager needs to be specified. If the parameter order did not have two
> > strings next to each other that could be achieved.
> >
> > I am wondering whether
> > .join("dept", Employee.DEPARTMENT, "manager")
> > is clearer. And thus
> > .join(Employee.DEPARTMENT, "manager")
> > Not sure.
> >
> > But then we end up with far to many polymorphic methods -- I wish Java
> > had keyword optional arguments!
> > (Also, the join parameter names do not make it clear which is which.
> > Maybe newAlias and previousAlias would be better?)
> >
> > Maybe
> > .join(...).setSelectMode(SNONE)
> > ie. set* affects the previous SQueryTable (including the main one if
> > at the beginning).
> > Thus maybe setAlias(), setJoinedAlias()?
> >
> > (Should replace .join with innerJoin everywhere.)
> >
> > (I'd like a good example for the white paper in the test cases,
> > include leftJoin.)
> >
> > Anthony
> >
> > Dr Anthony Berglas, [email protected] Mobile: +61 4 4838 8874
> > Just because it is possible to push twigs along the ground with ones
> > nose
> > does not necessarily mean that is the best way to collect firewood.
> >
> >
> >
> >
> >
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/SimpleORM/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/SimpleORM/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:[email protected]
mailto:[email protected]
<*> To unsubscribe from this group, send an email to:
[email protected]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/