[hibernate-issues] [Hibernate-JIRA] Updated: (HHH-5455) withClause SQL for many-to-many association uses table alias before it is defined

Gail Badner (JIRA) noreply at atlassian.com
Tue Aug 17 15:27:41 EDT 2010


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-5455?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gail Badner updated HHH-5455:
-----------------------------

    Summary: withClause SQL for many-to-many association uses table alias before it is defined  (was: withClause dublicates in SQL during many-to-many association relation)

> withClause SQL for many-to-many association uses table alias before it is defined
> ---------------------------------------------------------------------------------
>
>                 Key: HHH-5455
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5455
>             Project: Hibernate Core
>          Issue Type: Bug
>    Affects Versions: 3.5.0-Final, 3.6.0.Beta2
>            Reporter: Alexey Zhukov
>
> {code:title=Test1.java}
> @Entity
> @Table(name = "FA_TEST1")
> public class Test1 {
>     private Long id;
>     @Column(name = "FA_TEST1_ID")
>     @Id
>     public Long getId() { return id;}
>     public void setId(Long id) { this.id = id; }
>     private Set < Test2 > test2s;
>     @ManyToMany(fetch = FetchType.LAZY)
>     @JoinTable(name = "FA_TEST1_TEST2",
>             joinColumns = @JoinColumn(name = "TEST1_ID"),
>             inverseJoinColumns = @JoinColumn(name = "TEST2_ID")
>     )
>     @ForeignKey(name = "FA_TEST1_ID_FK", inverseName = "FA_TEST2_ID_FK")
>     public Set<Test2> getTest2s() { return test2s; }
>     public void setTest2s(Set<Test2> test2s) { this.test2s = test2s; }
> }
> {code}
> {code:title=Test2.java}
> @Entity
> @Table(name = "FA_TEST2")
> public class Test2 {
>     private Long id;
>     @Column(name = "FA_TEST2_ID")
>     @Id
>     public Long getId() { return id; }
>     public void setId(Long id) { this.id = id; }
> }
> {code}
> Sample criteria java-code ...
> {code:title=Sample criteria code}
> Test1 test1 = (Test1) session.createCriteria(Test1.class).
>         createAlias("test2s", "test2s",
>                 CriteriaSpecification.LEFT_JOIN,
>                 Restrictions.ge("id", 5L)).
>         add(Restrictions.idEq(1L)).uniqueResult();
> {code}
> ... produces following SQL-code:
> {code:SQL}
> select
>         this_.FA_TEST1_ID as FA1_0_1_,
>         test2s3_.TEST1_ID as TEST1_0_3_,
>         test2s1_.FA_TEST2_ID as TEST2_3_,
>         test2s1_.FA_TEST2_ID as FA1_1_0_ 
>     from
>         eisrsn2.FA_TEST1 this_ 
>     left outer join
>         eisrsn2.FA_TEST1_TEST2 test2s3_ 
>             on this_.FA_TEST1_ID=test2s3_.TEST1_ID 
>             and (
>                 test2s1_.FA_TEST2_ID>=? 
>             ) 
>     left outer join
>         eisrsn2.FA_TEST2 test2s1_ 
>             on test2s3_.TEST2_ID=test2s1_.FA_TEST2_ID 
>             and (
>                 test2s1_.FA_TEST2_ID>=? 
>             ) 
>     where
>         this_.FA_TEST1_ID = ?
> {code}
> Following part sould be mentioned once:
> {code}
>         and (
>                 test2s1_.FA_TEST2_ID>=? 
>         )
> {code}
> [Similar issue|http://opensource.atlassian.com/projects/hibernate/browse/HHH-5264]

-- 
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