[hibernate-dev] Pull request for HHH-2394 (Support filter tag in subclass)

Rob Worsnop rworsnop at gmail.com
Thu Jul 12 17:51:26 EDT 2012


Saw that. Thanks!

On Thu, Jul 12, 2012 at 5:18 PM, Steve Ebersole <steve at hibernate.org> wrote:

> It did make it into the 4.1.5.SP1 however :)
>
>
>
> On Thu 12 Jul 2012 08:52:43 AM CDT, Steve Ebersole wrote:
>
>> Rob, I apologize.  This was missed in the 4.1.5 release.
>>
>> On Thu 28 Jun 2012 01:55:53 PM CDT, Steve Ebersole wrote:
>>
>>> The plan as of now is to not have a 4.2.
>>>
>>> Your changes will be in 4.1.5 (if ok).
>>>
>>> On Thu 28 Jun 2012 01:04:42 PM CDT, Rob Worsnop wrote:
>>>
>>>> OK, done. I think I covered everything.
>>>>
>>>> Assuming my changes are OK, will they be in 4.2?
>>>>
>>>> On Mon, Jun 25, 2012 at 11:48 PM, Rob Worsnop <rworsnop at gmail.com
>>>> <mailto:rworsnop at gmail.com>> wrote:
>>>>
>>>>     Oh good. The way I am coding it, the flag will be ignored
>>>>     if SqlFragmentAlias elements are present.
>>>>
>>>>
>>>>     On Mon, Jun 25, 2012 at 3:40 PM, Steve Ebersole
>>>>     <steve at hibernate.org <mailto:steve at hibernate.org>> wrote:
>>>>
>>>>         And by the way, I think you are right in that if there are any
>>>>         explicit SqlFragmentAlias bits supplied, that we infer
>>>>         'deduceAliasInjectionPoints' as being false.
>>>>
>>>>
>>>>         On 06/25/2012 08:29 AM, Rob Worsnop wrote:
>>>>
>>>>             Got it. Earlier you were looking for suggestions for a
>>>>             less verbose name
>>>>             for this. How about "autoAliasInjection"?
>>>>
>>>>             On Mon, Jun 25, 2012 at 8:20 AM, Steve Ebersole
>>>>             <steve at hibernate.org <mailto:steve at hibernate.org>
>>>>             <mailto:steve at hibernate.org <mailto:steve at hibernate.org>>>
>>>>             wrote:
>>>>
>>>>                'deduceAliasInjectionPoints' is important when you
>>>>             don't have
>>>>                injections.  Otherwise Hibernate ends up scanning the
>>>>             condition
>>>>                fragment for no reason.
>>>>
>>>>
>>>>                On Fri 22 Jun 2012 11:09:31 AM CDT, Rob Worsnop wrote:
>>>>
>>>>                    On Mon, Jun 4, 2012 at 12:14 PM, Steve Ebersole
>>>>                    <steve at hibernate.org <mailto:steve at hibernate.org>
>>>>             <mailto:steve at hibernate.org <mailto:steve at hibernate.org>>>
>>>>             wrote:
>>>>
>>>>                        1) I think adding support for {alias} is a more
>>>>             general
>>>>                        issue.  Its
>>>>                        applicable to many other pieces of mapping
>>>> metadata
>>>>                        (@Formula, etc).  More I
>>>>                        was responding to David's comment there.  I
>>>>             totally think it
>>>>                        makes sense to
>>>>                        support this in all of those cases.  I guess
>>>>             the vote point
>>>>                        there is whether
>>>>                        we want to introduce that support piecemeal or
>>>>             develop it
>>>>                        across the board.
>>>>                          If we do do it piecemeal I think another
>>>> piece of
>>>>                        information we will need
>>>>                        is a flag indicating whether to scan for alias
>>>>             injection
>>>>                        points.  By
>>>>                        "scanning" I mean the processing we do today
>>>>             where we
>>>>                        tokenize the fragment
>>>>                        string and then try to guess where an alias is
>>>>             needed.
>>>>                        Let's call this
>>>>                        flag 'deduceAliasInjectionPoints' for now.  I
>>>>             tend to favor
>>>>                        meaningful
>>>>                        attribute names so my suggested names tend to
>>>>             get a little
>>>>                        long; I am open
>>>>                        to suggestions for a more succinct name.
>>>>              Anyway, I think it
>>>>                        needs to be
>>>>                        TRUE by default to maintain backwards
>>>>             compatible behavior.
>>>>                          Here is an
>>>>                        example:
>>>>
>>>>                        @Filter(name="iqMin", table="ZOOLOGY_HUMAN",
>>>>                        condition="{alias}.HUMAN_IQ >=
>>>>                        :min", deduceAliasInjectionPoints=___**_false)
>>>>
>>>>
>>>>                        Here there is no need to deduce the points at
>>>>             which to
>>>>                        inject an alias; we
>>>>                        have done that for Hibernate in the supplied
>>>>             condition fragment.
>>>>
>>>>                        I think another discussion revolves around
>>>>             cases in which
>>>>                        the fragment
>>>>                        involves references to columns from multiple
>>>>             tables.  Mostly
>>>>                        this is
>>>>                        important for scenarios involving secondary
>>>>             tables and
>>>>                        inheritance.  Do we
>>>>                        want to provide support for that?  Using the
>>>>             classic
>>>>                        org.hibernate.test.hql.Animal hierarchy from
>>>>             the testsuite,
>>>>                        maybe something
>>>>                        like:
>>>>
>>>>                        @Filter(
>>>>                           name="iqMin",
>>>>                           condition="{a}.bodyWeight >= :minWeight and
>>>>             {m}.birthdate <
>>>>                        :ageCutOffBirthDate",
>>>>                           deduceAliasInjectionPoints=___**_false,
>>>>
>>>>                           aliases={
>>>>                               @SqlFragmentAlias( alias="a",
>>>>             entity=Animal.class ),
>>>>                               @SqlFragmentAlias( alias="m",
>>>>             entity=Mammal.class )
>>>>                           }
>>>>                        )
>>>>
>>>>
>>>>                    How about just applying the secondary table usage
>>>>             to everything?
>>>>
>>>>                    So, to rewrite your first example:
>>>>
>>>>                    @Filter(name="iqMin", condition="{h}.HUMAN_IQ >=>
>>>>             :min",
>>>>                         aliases={@SqlFragmentAlias( alias="h",
>>>>                    table="ZOOLOGY_HUMAN" )})
>>>>
>>>>                    Note that I didn't include
>>>>             "deduceAliasInjectionPoints". Wouldn't we
>>>>                    just infer that from the presence of the aliases
>>>>             element?
>>>>
>>>>
>>>>                --
>>>>             steve at hibernate.org <mailto:steve at hibernate.org>
>>>>             <mailto:steve at hibernate.org <mailto:steve at hibernate.org>>
>>>>             http://hibernate.org
>>>>
>>>>
>>>>
>>>>         --
>>>>         steve at hibernate.org <mailto:steve at hibernate.org>
>>>>         http://hibernate.org
>>>>
>>>>
>>>>
>>>>
>>>>
>>> --
>>> steve at hibernate.org
>>> http://hibernate.org
>>>
>>
>> --
>> steve at hibernate.org
>> http://hibernate.org
>>
>
> --
> steve at hibernate.org
> http://hibernate.org
>


More information about the hibernate-dev mailing list