users@jpa-spec.java.net

[jpa-spec users] [jsr338-experts] Re: CriteriaUpdate/CriteriaDelete questions

From: Linda DeMichiel <linda.demichiel_at_oracle.com>
Date: Thu, 05 Jul 2012 15:16:39 -0700

On 7/5/2012 3:11 PM, Steve Ebersole wrote:
> Subquery#getParent is not deprecated in these. Is that just an oversight?
>

No. We don't mark things as @Deprecated as users find this noisy and annoying.
The getParent methods still works and except for CriteriaUpdate/Delete is fine to use.
I tried to be clear in the javadocs, but if you think these should be beefed
up, feel free to suggest how.

> Other than that I think these look great!
>
> So back to calling from(...) on CriteriaDelete and CriteriaUpdate, what is the expectation of multiple calls to those
> methods. Do we just replace the old root? Or is that an error?
>

It should be an error.

> On Thu 05 Jul 2012 04:56:13 PM CDT, Linda DeMichiel wrote:
>> Refactored APIs look like the attached. Please let me know if
>> you see any issues.
>>
>> -Linda
>>
>>
>> On 7/5/2012 11:56 AM, Steve Ebersole wrote:
>>> I like the deprecation idea.
>>>
>>> Just a suggestion though that CommonAbstractQuery be
>>> CommonAbstractCriteria instead, since you already use "Query" (as
>>> in CriteriaQuery) for selection queries specifically.
>>>
>>>
>>> On Thu 05 Jul 2012 01:41:17 PM CDT, Linda DeMichiel wrote:
>>>> Hi Rainer, all
>>>>
>>>> On 7/3/2012 8:07 AM, Rainer Kwesi Schweigkoffer wrote:
>>>>> Hi Linda, all,
>>>>>
>>>>> Linda DeMichiel, am 29 Jun 2012 hast Du um 12:31 zum Thema "[jsr338-
>>>>> experts] Re: CriteriaUpdate/CriteriaDelet" geschrieben :
>>>>>
>>>>>> Hi Steve, all,
>>>>>>
>>>>>> My concern here is that this is a backwards incompatible change with
>>>>>> regard to Subquery#getParent().
>>>>>>
>>>>>> I'm not sure what the best thing to do here is. I've attached
>>>>>> revisions
>>>>>> of CriteriaUpdate and CriteriaDelete that try to work around the
>>>>>> problem,
>>>>>> but I'm really not happy about how these abuse the typing.
>>>>>>
>>>>>> Suggestions appreciated.
>>>>>
>>>>
>>>> Thanks for the suggestions!
>>>>
>>>>>
>>>>> another - also not very nice - possibility is to
>>>>>
>>>>> o factor out all methods from Subquery into AbstractSubquery apart
>>>>> from
>>>>> the getParent method
>>>>>
>>>>
>>>> When you say 'factor out' did you mean duplicate or move the methods
>>>> that
>>>> currently return Subquery? If that latter, that is a
>>>> backwards-incompatible
>>>> change, which we can't make.
>>>>
>>>>> o have Subquery extend AbstractSubquery, additionally providing its
>>>>> getParent method
>>>>>
>>>>> o create a ModificationSubquery interface extending AbstractSubquery
>>>>> and providing AbstractModification<?> getParent()
>>>>>
>>>>> where AbstractModification is an interface extended by both
>>>>> CriteriaUpdate and CriteriaDelete (as proposed in my mail message of
>>>>> April 1st, 2011)
>>>>>
>>>>> o have CriteriaUpdate/CriteriaDelete's subquery() method return
>>>>> ModificationSubquery.
>>>>>
>>>>> It's a patch, of course.
>>>>>
>>>>
>>>> Yes.
>>>>
>>>> Another approach is that we effectively "deprecate" Subquery#getParent
>>>> and add
>>>> a Subquery#getContainingQuery method, which would return a
>>>> CommonAbstractQuery
>>>> from which AbstractQuery, CriteriaUpdate, and CriteriaDelete would all
>>>> inherit
>>>> (i.e., back to the CommonAbstractQuery idea).
>>>>
>>>> More opinions??
>>>>
>>>> best regards,
>>>>
>>>> -Linda
>>>>
>>>>
>>>>
>>>>
>>>>> Best regards
>>>>> Rainer
>>>>>
>>>>>
>>>>>
>>>>> ---
>>>>> Rainer Schweigkoffer SAP AG Walldorf
>>>>> Java Persistence TIP Core JI
>>>>> Core Java Infrastructure Dietmar-Hopp-Allee 16
>>>>> Technology& Innovation Platform D-69190 Walldorf
>>>>> Building 3, I.3.14 phone: +49 6227 7 45305
>>>>> rainer.schweigkoffer_at_sap.com fax: +49 6227 7 821177
>>>>>
>>>>> Sitz der Gesellschaft/Registered Office: Walldorf, Germany
>>>>> Vorstand/SAP Executive Board: Werner Brandt, Bill
>>>>> McDermott (Co-CEO), Gerhard Oswald, Vishal Sikka,
>>>>> Jim Hagemann Snabe (Co-CEO)
>>>>> Vorsitzender des Aufsichtsrats/Chairperson of the SAP
>>>>> Supervisory
>>>>> Board: Hasso Plattner
>>>>> Registergericht/Commercial Register Mannheim No HRB 350269
>>>>>
>>>>> Diese E-Mail kann Betriebs- oder Geschaeftsgeheimnisse
>>>>> oder sonstige vertrauliche Informationen enthalten.
>>>>> Sollten Sie diese E-Mail irrtuemlich erhalten haben, ist
>>>>> Ihnen eine Verwertung des Inhalts, eine Vervielfaeltigung
>>>>> oder Weitergabe der E-Mail ausdruecklich untersagt. Bitte
>>>>> benachrichtigen Sie uns und vernichten Sie die empfangene
>>>>> E-Mail. Vielen Dank.
>>>>>
>>>>> This e-mail may contain trade secrets or privileged,
>>>>> undisclosed, or otherwise confidential information. If you
>>>>> have received this e-mail in error, you are hereby
>>>>> notified that any review, copying, or distribution of it
>>>>> is strictly prohibited. Please inform us immediately and
>>>>> destroy the original transmittal. Thank you for your
>>>>> cooperation.
>>>>>
>>>>>