From 770713b249719303b926ae2fd2348b75589aa7e6 Mon Sep 17 00:00:00 2001 From: CSharper2010 Date: Tue, 10 Dec 2024 14:46:54 +0100 Subject: [PATCH 1/2] Fixes #3631 Incrementing Version on parent entity for a collection change works correctly even with optimistic-lock="false" on another property of the same entity. Call to HasDirtyCollections has a side effect thus must be called independently from the existence of other dirty properties. --- .../VersionTest/Db/DbVersionFixture.cs | 1 + src/NHibernate.Test/VersionTest/Db/User.cs | 4 +++- .../VersionTest/Db/User.hbm.xml | 5 +++-- .../DefaultFlushEntityEventListener.cs | 20 +++++++++++-------- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/NHibernate.Test/VersionTest/Db/DbVersionFixture.cs b/src/NHibernate.Test/VersionTest/Db/DbVersionFixture.cs index c5c50b96ab8..7e22a859145 100644 --- a/src/NHibernate.Test/VersionTest/Db/DbVersionFixture.cs +++ b/src/NHibernate.Test/VersionTest/Db/DbVersionFixture.cs @@ -42,6 +42,7 @@ public void CollectionVersion() admin = s.Get(admin.Id); guy.Groups.Add(admin); admin.Users.Add(guy); + guy.NoOptimisticLock = "changed"; t.Commit(); s.Close(); diff --git a/src/NHibernate.Test/VersionTest/Db/User.cs b/src/NHibernate.Test/VersionTest/Db/User.cs index 6dc9368c55f..ad0aafb833b 100644 --- a/src/NHibernate.Test/VersionTest/Db/User.cs +++ b/src/NHibernate.Test/VersionTest/Db/User.cs @@ -11,8 +11,10 @@ public class User public virtual string Username { get; set; } + public virtual string NoOptimisticLock { get; set; } + public virtual ISet Groups { get; set; } public virtual ISet Permissions { get; set; } } -} \ No newline at end of file +} diff --git a/src/NHibernate.Test/VersionTest/Db/User.hbm.xml b/src/NHibernate.Test/VersionTest/Db/User.hbm.xml index b809ccc8c72..1dfc4080a07 100644 --- a/src/NHibernate.Test/VersionTest/Db/User.hbm.xml +++ b/src/NHibernate.Test/VersionTest/Db/User.hbm.xml @@ -1,4 +1,4 @@ - +