[ 
https://issues.apache.org/jira/browse/JDO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Bouschen resolved JDO-737.
----------------------------------
    Resolution: Fixed

There are new methods returning the query instance to support method chaining, 
e.g. Query<{color:#20999d}T{color}> filter(String filter) or 
Query<{color:#20999d}T{color}> result(String result). 

The specification includes the new methods already. The TCK class SampleQueries 
calls these methods, so they are covered by the TCK.

> Change Query API to be "fluent"
> -------------------------------
>
>                 Key: JDO-737
>                 URL: https://issues.apache.org/jira/browse/JDO-737
>             Project: JDO
>          Issue Type: New Feature
>          Components: api, specification, tck
>            Reporter: Andy Jefferson
>            Assignee: Michael Bouschen
>            Priority: Major
>             Fix For: JDO 3.2
>
>         Attachments: JDO-737.patch
>
>
> Further to JDO-736 it would be nice to redesign the Query class to have the 
> setter methods as FLUENT. I see two ways of achieving this
> Option1
> Query q = 
> pm.newQuery(Person.class).filter("firstName.startsWith('F')").orderBy("firstName");
> So we add a subset of the setters as methods without "set" so as to align 
> further with the typesafe variant in JDO-652. The existing setXXX methods can 
> be deprecated.
> Option2
> Query q = 
> pm.newQuery(Person.class).setFilter("firstName.startsWith('F')").setOrdering("firstName");
> So we change the return type of (some of) the existing setters. Existing JDO 
> code will need to be recompiled due to the return type change.
> What is decided here needs to coordinate with JDO-652 so that, for example, 
> if JDO-652 comes up with an API like (as currently)
> query.filter(cand.value.lt.40).orderBy(cand.name.asc())
> then this issue matches the API method names, so using the String-based API 
> for the same resultant query the user would do
> query.filter("this.value < 40").orderBy("this.name ASC");



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to