From 7f626e3ca87ce9bdcf8fe17127a98f97454ef49a Mon Sep 17 00:00:00 2001 From: Roman Artiukhin Date: Tue, 10 Aug 2021 12:00:16 +0300 Subject: [PATCH 1/2] Fix duplicate join for collection --- src/NHibernate.Test/Async/NHSpecificTest/GH1962/Fixture.cs | 2 -- src/NHibernate.Test/NHSpecificTest/GH1962/Fixture.cs | 2 -- src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementFactory.cs | 3 ++- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/NHibernate.Test/Async/NHSpecificTest/GH1962/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/GH1962/Fixture.cs index 429dcf79dda..e7239c73347 100644 --- a/src/NHibernate.Test/Async/NHSpecificTest/GH1962/Fixture.cs +++ b/src/NHibernate.Test/Async/NHSpecificTest/GH1962/Fixture.cs @@ -19,11 +19,9 @@ namespace NHibernate.Test.NHSpecificTest.GH1962 public class FixtureAsync : BugTestCase { [Test] - [KnownBug("#1962")] public async Task LinqShouldBeValidAsync() { using (var session = OpenSession()) - using (session.BeginTransaction()) { var result = await (session diff --git a/src/NHibernate.Test/NHSpecificTest/GH1962/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/GH1962/Fixture.cs index b88e42b6279..a2ac353ac42 100644 --- a/src/NHibernate.Test/NHSpecificTest/GH1962/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/GH1962/Fixture.cs @@ -7,11 +7,9 @@ namespace NHibernate.Test.NHSpecificTest.GH1962 public class Fixture : BugTestCase { [Test] - [KnownBug("#1962")] public void LinqShouldBeValid() { using (var session = OpenSession()) - using (session.BeginTransaction()) { var result = session diff --git a/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementFactory.cs b/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementFactory.cs index 3d04fdcfd7b..cad85707a23 100644 --- a/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementFactory.cs +++ b/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementFactory.cs @@ -359,9 +359,10 @@ private FromElement CreateEntityAssociation( } elem = CreateManyToMany(role, associatedEntityName, roleAlias, entityPersister, (EntityType)_queryableCollection.ElementType, joinType); - _fromClause.Walker.AddQuerySpaces(_queryableCollection.CollectionSpaces); } elem.CollectionTableAlias = roleAlias; + _fromClause.Walker.AddQuerySpaces(_queryableCollection.CollectionSpaces); + _fromClause.AddCollectionJoinFromElementByPath(_path, elem); return elem; } From a03d8baa14a961369a0c23eba38b542818467405 Mon Sep 17 00:00:00 2001 From: Roman Artiukhin Date: Tue, 10 Aug 2021 20:40:14 +0300 Subject: [PATCH 2/2] Remove unnecessary change (AddQuerySpaces is called later anyway) --- src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementFactory.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementFactory.cs b/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementFactory.cs index cad85707a23..1324ffe7e7a 100644 --- a/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementFactory.cs +++ b/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementFactory.cs @@ -359,9 +359,9 @@ private FromElement CreateEntityAssociation( } elem = CreateManyToMany(role, associatedEntityName, roleAlias, entityPersister, (EntityType)_queryableCollection.ElementType, joinType); + _fromClause.Walker.AddQuerySpaces(_queryableCollection.CollectionSpaces); } elem.CollectionTableAlias = roleAlias; - _fromClause.Walker.AddQuerySpaces(_queryableCollection.CollectionSpaces); _fromClause.AddCollectionJoinFromElementByPath(_path, elem); return elem; }