[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