[hibernate-dev] Pull request for HHH-2394 (Support filter tag in subclass)
Steve Ebersole
steve at hibernate.org
Thu Jul 12 09:52:43 EDT 2012
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
More information about the hibernate-dev
mailing list