[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-3684) Sybase - ANSI joins fail if there are 3 or more joins and at least one join involves a union

Davide Gesino (JIRA) noreply at atlassian.com
Fri Nov 19 04:09:13 EST 2010


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-3684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=39160#action_39160 ] 

Davide Gesino commented on HHH-3684:
------------------------------------

When using a deep inheritance level and a TABLE_PER_CLASS strategy it's common to fall in a error like this in Hibernate+sybase. 
Is there a suggested workaround?



> Sybase - ANSI joins fail if there are 3 or more joins and at least one join involves a union
> --------------------------------------------------------------------------------------------
>
>                 Key: HHH-3684
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3684
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: core
>            Reporter: Gail Badner
>            Assignee: Gail Badner
>
> Two unit tests fail:
>   UnionSubclassTest.testUnionSubclassFetchMode()..
>   UnionSubclassPropertyRefTest.testOneToOnePropertyRef() 
> This may be due to a bug in Sybase. A similar problem is discussed here:
> http://www.forumtopics.com/busobj/viewtopic.php?p=442226&sid=40bd96248c52fa6193686f4288f19a4c
> For UnionSubclassTest.testUnionSubclassFetchMode(), changing:
> select ...
> from ( select ... from humans 
>             union 
>          select ... from employees ) this_ 
> inner join locations location2_ 
>   on this_.location=location2_.id 
> left outer join ( select ... from employees 
>                          union 
>                       select ... from humans 
>                          union 
>                       select ... from aliens ) beings3_ 
>   on location2_.id=beings3_.location
> :
> to:
> select ...
> from ( select ... from humans 
>             union 
>          select ... from employees ) this_ 
> inner join (locations location2_ 
> left outer join ( select ... from employees 
>                          union 
>                       select ... from humans 
>                          union 
>                       select ... from aliens ) beings3_ 
>   on location2_.id=beings3_.location)
> : on this_.location=location2_.id 
> fixes the problem.
> This change is similar to what is documented for a "right-nested outer join" at  http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32300.1502/html/sqlug/sqlug170.htm.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list