You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by "Craig L Russell (JIRA)" <ji...@apache.org> on 2015/04/24 19:00:41 UTC

[jira] [Commented] (JDO-737) Change Query API to be "fluent"

    [ https://issues.apache.org/jira/browse/JDO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14511337#comment-14511337 ] 

Craig L Russell commented on JDO-737:
-------------------------------------

I agree option 1 is preferable.

I agree that we need to work on the result specification to avoid "casting nonsense".

> 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
>             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
(v6.3.4#6332)