Not sure when you sent this out, but I already fixed this (my)
yeasterday. The only real option, IMO, is to throw an exception. As
long as we are tied to pulling resultset values based on column name
this is going to be a situation that we simply cannot reasonably
support. Modifying the sql query is extremely difficult.
On Tue 29 Nov 2011 11:37:59 AM CST, Max Rydahl Andersen wrote:
> I agree we should not do any magic on a native query; but
following
> this reasoning just anything should be possible, and I wouldn't expect
> Hibernate to apply such magic to the results either.
> Why is it even looking at names in the resultset? As a user I'd want
> it to just return the same ordered sequence of values.
At the time of original implementation there wasn't any other way to do the mapping
as I recall.
I guess in this very special case (no scalars, nor entity mappings) adding on the query
it could be handled differently.
Note though that we need to ensure if you apply a result transformer to this query it
will actually return something sensible
(i.e. named aliases for a map vs just indexes)
The rearranging of hibernate core might allow for handling this now but I'm not
uptodate on that.
/max
> I would consider it very important to allow a full "jdbc fallback"
> experience, otherwise instead of being a nice tool it becomes an
> impediment and users will rightfully hate you.
>
> Sanne
>
> On 29 November 2011 15:25, Max Rydahl Andersen<max.andersen(a)redhat.com>
wrote:
>> the original idea of the native sql approach is to avoid/reduce doing anything
magical with the query since
>> there is no way to fix these generally without a full sql parser.
>>
>> So I would say it works as expected.
>>
>> /max
>>
>> On Nov 29, 2011, at 11:59, Strong Liu wrote:
>>
>>> T_User
>>> id username
>>> 1 stliu
>>> 2 gail
>>>
>>> for example a native query sql "select v1.username, v2.username from
T_User v1, T_User v2 where v1.id = '1' and v2.id = '2'"
>>>
>>> but the query returns ["stliu", "stliu"] instead of the
expected ["stliu", "gail"]
>>>
>>> this is because hibernate uses column alias (in this case, both are
"username") to get the result from ResultSet, and since the two result in RS are
all keyed by "username"
>>>
>>>
>>> should we generate a alias for each like hql does?
>>>
>>>
>>> -------------------------
>>> Best Regards,
>>>
>>> Strong Liu<stliu at hibernate.org>
>>>
http://about.me/stliu/bio
>>>
>>> _______________________________________________
>>> hibernate-dev mailing list
>>> hibernate-dev(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
>> /max
>>
http://about.me/maxandersen
>>
>>
>>
>>
>> _______________________________________________
>> hibernate-dev mailing list
>> hibernate-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
/max
http://about.me/maxandersen
_______________________________________________
hibernate-dev mailing list
hibernate-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev