From 0037e01dc0e6ec314740067899256d0574527a49 Mon Sep 17 00:00:00 2001 From: Alex Zaytsev Date: Fri, 30 Apr 2021 22:37:41 +1200 Subject: [PATCH 1/4] Implement support of SqlCheck in mapping by code --- .../MappersTests/JoinMapperTests.cs | 42 +++++++++++++++++++ src/NHibernate/Mapping/ByCode/IClassMapper.cs | 2 +- .../ByCode/IEntitySqlsWithCheckMapper.cs | 36 ++++++++++++++++ src/NHibernate/Mapping/ByCode/IJoinMapper.cs | 2 +- .../Mapping/ByCode/Impl/ClassMapper.cs | 35 +++++++++++++++- .../Impl/CustomizersImpl/ClassCustomizer.cs | 15 +++++++ .../Impl/CustomizersImpl/JoinCustomizer.cs | 15 +++++++ .../JoinedSubclassCustomizer.cs | 23 ++++++++-- .../CustomizersImpl/SubclassCustomizer.cs | 15 +++++++ .../UnionSubclassCustomizer.cs | 15 +++++++ .../Mapping/ByCode/Impl/JoinMapper.cs | 35 +++++++++++++++- .../ByCode/Impl/JoinedSubclassMapper.cs | 35 +++++++++++++++- .../Mapping/ByCode/Impl/SubclassMapper.cs | 37 +++++++++++++++- .../ByCode/Impl/UnionSubclassMapper.cs | 35 +++++++++++++++- src/NHibernate/Mapping/ByCode/SqlCheck.cs | 9 ++++ 15 files changed, 339 insertions(+), 12 deletions(-) create mode 100644 src/NHibernate/Mapping/ByCode/IEntitySqlsWithCheckMapper.cs create mode 100644 src/NHibernate/Mapping/ByCode/SqlCheck.cs diff --git a/src/NHibernate.Test/MappingByCode/MappersTests/JoinMapperTests.cs b/src/NHibernate.Test/MappingByCode/MappersTests/JoinMapperTests.cs index 4ef59e1f6da..7d5b5587e99 100644 --- a/src/NHibernate.Test/MappingByCode/MappersTests/JoinMapperTests.cs +++ b/src/NHibernate.Test/MappingByCode/MappersTests/JoinMapperTests.cs @@ -112,6 +112,20 @@ public void CanSetSqlInsert() Assert.That(hbmJoin.SqlInsert.Text[0], Is.EqualTo("blah")); } + [Test] + public void CanSetSqlInsertWithCheck() + { + var mapdoc = new HbmMapping(); + var hbmJoin = new HbmJoin(); + var mapper = new JoinMapper(typeof(MyClass), "AA", hbmJoin, mapdoc); + mapper.SqlInsert("blah", SqlCheck.RowCount); + + Assert.That(hbmJoin.SqlInsert, Is.Not.Null); + Assert.That(hbmJoin.SqlInsert.Text[0], Is.EqualTo("blah")); + Assert.That(hbmJoin.SqlInsert.checkSpecified, Is.True); + Assert.That(hbmJoin.SqlInsert.check, Is.EqualTo(HbmCustomSQLCheck.Rowcount)); + } + [Test] public void SetSqlUpdate() { @@ -124,6 +138,20 @@ public void SetSqlUpdate() Assert.That(hbmJoin.SqlUpdate.Text[0], Is.EqualTo("blah")); } + [Test] + public void SetSqlUpdateWithCheck() + { + var mapdoc = new HbmMapping(); + var hbmJoin = new HbmJoin(); + var mapper = new JoinMapper(typeof(MyClass), "AA", hbmJoin, mapdoc); + mapper.SqlUpdate("blah", SqlCheck.RowCount); + + Assert.That(hbmJoin.SqlUpdate, Is.Not.Null); + Assert.That(hbmJoin.SqlUpdate.Text[0], Is.EqualTo("blah")); + Assert.That(hbmJoin.SqlUpdate.checkSpecified, Is.True); + Assert.That(hbmJoin.SqlUpdate.check, Is.EqualTo(HbmCustomSQLCheck.Rowcount)); + } + [Test] public void SetSqlDelete() { @@ -136,6 +164,20 @@ public void SetSqlDelete() Assert.That(hbmJoin.SqlDelete.Text[0], Is.EqualTo("blah")); } + [Test] + public void SetSqlDeleteWithCheck() + { + var mapdoc = new HbmMapping(); + var hbmJoin = new HbmJoin(); + var mapper = new JoinMapper(typeof(MyClass), "AA", hbmJoin, mapdoc); + mapper.SqlDelete("blah", SqlCheck.RowCount); + + Assert.That(hbmJoin.SqlDelete, Is.Not.Null); + Assert.That(hbmJoin.SqlDelete.Text[0], Is.EqualTo("blah")); + Assert.That(hbmJoin.SqlDelete.checkSpecified, Is.True); + Assert.That(hbmJoin.SqlDelete.check, Is.EqualTo(HbmCustomSQLCheck.Rowcount)); + } + [Test] public void CanSetSqlSubselect() { diff --git a/src/NHibernate/Mapping/ByCode/IClassMapper.cs b/src/NHibernate/Mapping/ByCode/IClassMapper.cs index e16e41d2758..8caba389064 100644 --- a/src/NHibernate/Mapping/ByCode/IClassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/IClassMapper.cs @@ -77,4 +77,4 @@ public interface IClassMapper : IClassAttributesMapper, IPrope { void Join(string splitGroupId, Action> splitMapping); } -} \ No newline at end of file +} diff --git a/src/NHibernate/Mapping/ByCode/IEntitySqlsWithCheckMapper.cs b/src/NHibernate/Mapping/ByCode/IEntitySqlsWithCheckMapper.cs new file mode 100644 index 00000000000..31a2811d5ff --- /dev/null +++ b/src/NHibernate/Mapping/ByCode/IEntitySqlsWithCheckMapper.cs @@ -0,0 +1,36 @@ +using NHibernate.Util; + +namespace NHibernate.Mapping.ByCode +{ + //6.0 TODO: merge into IEntitySqlsMapper + public interface IEntitySqlsWithCheckMapper + { + void SqlInsert(string sql, SqlCheck sqlCheck); + void SqlUpdate(string sql, SqlCheck sqlCheck); + void SqlDelete(string sql, SqlCheck sqlCheck); + } + + public static class EntitySqlsWithCheckMapperExtensions + { + public static void SqlInsert(this IEntitySqlsMapper mapper, string sql, SqlCheck sqlCheck) + { + ReflectHelper + .CastOrThrow(mapper, "SqlInsert with sqlCheck") + .SqlInsert(sql, sqlCheck); + } + + public static void SqlUpdate(this IEntitySqlsMapper mapper, string sql, SqlCheck sqlCheck) + { + ReflectHelper + .CastOrThrow(mapper, "SqlUpdate with sqlCheck") + .SqlUpdate(sql, sqlCheck); + } + + public static void SqlDelete(this IEntitySqlsMapper mapper, string sql, SqlCheck sqlCheck) + { + ReflectHelper + .CastOrThrow(mapper, "SqlDelete with sqlCheck") + .SqlDelete(sql, sqlCheck); + } + } +} diff --git a/src/NHibernate/Mapping/ByCode/IJoinMapper.cs b/src/NHibernate/Mapping/ByCode/IJoinMapper.cs index e73ea8a6667..7f188b71be5 100644 --- a/src/NHibernate/Mapping/ByCode/IJoinMapper.cs +++ b/src/NHibernate/Mapping/ByCode/IJoinMapper.cs @@ -28,4 +28,4 @@ public interface IJoinAttributesMapper : IEntitySqlsMapper where TEntit public interface IJoinMapper : IJoinAttributesMapper, ICollectionPropertiesContainerMapper, IBasePlainPropertyContainerMapper where TEntity : class {} -} \ No newline at end of file +} diff --git a/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs index 8b397778849..fa84fdb3045 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs @@ -8,7 +8,7 @@ namespace NHibernate.Mapping.ByCode.Impl { - public class ClassMapper : AbstractPropertyContainerMapper, IClassMapper + public class ClassMapper : AbstractPropertyContainerMapper, IClassMapper, IEntitySqlsWithCheckMapper { private readonly HbmClass classMapping; private readonly IIdMapper idMapper; @@ -369,6 +369,17 @@ public void SqlInsert(string sql) classMapping.sqlinsert.Text = new[] {sql}; } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + if (classMapping.SqlInsert == null) + { + classMapping.sqlinsert = new HbmCustomSQL(); + } + classMapping.sqlinsert.checkSpecified = true; + classMapping.sqlinsert.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlinsert.Text = new[] { sql }; + } + public void SqlUpdate(string sql) { if (classMapping.SqlUpdate == null) @@ -378,6 +389,17 @@ public void SqlUpdate(string sql) classMapping.sqlupdate.Text = new[] {sql}; } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + if (classMapping.SqlUpdate == null) + { + classMapping.sqlupdate = new HbmCustomSQL(); + } + classMapping.sqlupdate.checkSpecified = true; + classMapping.sqlupdate.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlupdate.Text = new[] { sql }; + } + public void SqlDelete(string sql) { if (classMapping.SqlDelete == null) @@ -387,6 +409,17 @@ public void SqlDelete(string sql) classMapping.sqldelete.Text = new[] {sql}; } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + if (classMapping.SqlDelete == null) + { + classMapping.sqldelete = new HbmCustomSQL(); + } + classMapping.sqldelete.checkSpecified = true; + classMapping.sqldelete.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqldelete.Text = new[] { sql }; + } + public void Subselect(string sql) { if (classMapping.Subselect == null) diff --git a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs index 1364bba265e..c676dc2e688 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs @@ -264,16 +264,31 @@ public void SqlInsert(string sql) CustomizersHolder.AddCustomizer(typeof(TEntity), (IClassMapper m) => m.SqlInsert(sql)); } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IClassMapper m) => m.SqlInsert(sql, sqlCheck)); + } + public void SqlUpdate(string sql) { CustomizersHolder.AddCustomizer(typeof(TEntity), (IClassMapper m) => m.SqlUpdate(sql)); } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IClassMapper m) => m.SqlUpdate(sql, sqlCheck)); + } + public void SqlDelete(string sql) { CustomizersHolder.AddCustomizer(typeof(TEntity), (IClassMapper m) => m.SqlDelete(sql)); } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IClassMapper m) => m.SqlDelete(sql, sqlCheck)); + } + public void Subselect(string sql) { CustomizersHolder.AddCustomizer(typeof(TEntity), (IClassMapper m) => m.Subselect(sql)); diff --git a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinCustomizer.cs b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinCustomizer.cs index 530890e04f0..762c39366be 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinCustomizer.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinCustomizer.cs @@ -32,16 +32,31 @@ public void SqlInsert(string sql) CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinAttributesMapper m) => m.SqlInsert(sql)); } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinAttributesMapper m) => m.SqlInsert(sql, sqlCheck)); + } + public void SqlUpdate(string sql) { CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinAttributesMapper m) => m.SqlUpdate(sql)); } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinAttributesMapper m) => m.SqlUpdate(sql, sqlCheck)); + } + public void SqlDelete(string sql) { CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinAttributesMapper m) => m.SqlDelete(sql)); } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinAttributesMapper m) => m.SqlDelete(sql, sqlCheck)); + } + public void Subselect(string sql) { CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinAttributesMapper m) => m.Subselect(sql)); diff --git a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs index 3dfbfabb19c..c8236fce0aa 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs @@ -92,16 +92,31 @@ public void SqlInsert(string sql) CustomizersHolder.AddCustomizer(typeof (TEntity), (IJoinedSubclassAttributesMapper m) => m.SqlInsert(sql)); } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinedSubclassAttributesMapper m) => m.SqlInsert(sql, sqlCheck)); + } + public void SqlUpdate(string sql) { CustomizersHolder.AddCustomizer(typeof (TEntity), (IJoinedSubclassAttributesMapper m) => m.SqlUpdate(sql)); } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinedSubclassAttributesMapper m) => m.SqlUpdate(sql, sqlCheck)); + } + public void SqlDelete(string sql) { CustomizersHolder.AddCustomizer(typeof (TEntity), (IJoinedSubclassAttributesMapper m) => m.SqlDelete(sql)); } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinedSubclassAttributesMapper m) => m.SqlDelete(sql, sqlCheck)); + } + public void Subselect(string sql) { CustomizersHolder.AddCustomizer(typeof (TEntity), (IJoinedSubclassAttributesMapper m) => m.Subselect(sql)); @@ -140,10 +155,10 @@ public void Schema(string schemaName) CustomizersHolder.AddCustomizer(typeof (TEntity), (IJoinedSubclassAttributesMapper m) => m.Schema(schemaName)); } - public void Filter(string filterName, Action filterMapping) - { - CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinedSubclassAttributesMapper m) => m.Filter(filterName, filterMapping)); - } + public void Filter(string filterName, Action filterMapping) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinedSubclassAttributesMapper m) => m.Filter(filterName, filterMapping)); + } #endregion diff --git a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/SubclassCustomizer.cs b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/SubclassCustomizer.cs index c66c97aa3ca..74b92f305f4 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/SubclassCustomizer.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/SubclassCustomizer.cs @@ -129,16 +129,31 @@ public void SqlInsert(string sql) CustomizersHolder.AddCustomizer(typeof (TEntity), (ISubclassMapper m) => m.SqlInsert(sql)); } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (ISubclassMapper m) => m.SqlInsert(sql, sqlCheck)); + } + public void SqlUpdate(string sql) { CustomizersHolder.AddCustomizer(typeof (TEntity), (ISubclassMapper m) => m.SqlUpdate(sql)); } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (ISubclassMapper m) => m.SqlUpdate(sql, sqlCheck)); + } + public void SqlDelete(string sql) { CustomizersHolder.AddCustomizer(typeof (TEntity), (ISubclassMapper m) => m.SqlDelete(sql)); } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (ISubclassMapper m) => m.SqlDelete(sql, sqlCheck)); + } + public void Subselect(string sql) { CustomizersHolder.AddCustomizer(typeof (TEntity), (ISubclassMapper m) => m.Subselect(sql)); diff --git a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/UnionSubclassCustomizer.cs b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/UnionSubclassCustomizer.cs index 38128122bf8..0b879c7dfae 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/UnionSubclassCustomizer.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/UnionSubclassCustomizer.cs @@ -79,16 +79,31 @@ public void SqlInsert(string sql) CustomizersHolder.AddCustomizer(typeof (TEntity), (IUnionSubclassAttributesMapper m) => m.SqlInsert(sql)); } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IUnionSubclassAttributesMapper m) => m.SqlInsert(sql, sqlCheck)); + } + public void SqlUpdate(string sql) { CustomizersHolder.AddCustomizer(typeof (TEntity), (IUnionSubclassAttributesMapper m) => m.SqlUpdate(sql)); } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IUnionSubclassAttributesMapper m) => m.SqlUpdate(sql, sqlCheck)); + } + public void SqlDelete(string sql) { CustomizersHolder.AddCustomizer(typeof (TEntity), (IUnionSubclassAttributesMapper m) => m.SqlDelete(sql)); } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IUnionSubclassAttributesMapper m) => m.SqlDelete(sql, sqlCheck)); + } + public void Subselect(string sql) { CustomizersHolder.AddCustomizer(typeof (TEntity), (IUnionSubclassAttributesMapper m) => m.Subselect(sql)); diff --git a/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs index 2c2fa83f4a3..d90ab26fc89 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs @@ -17,7 +17,7 @@ public TableNameChangedEventArgs(string oldName, string newName) } public delegate void TableNameChangedHandler(IJoinMapper mapper, TableNameChangedEventArgs args); - public class JoinMapper: AbstractPropertyContainerMapper,IJoinMapper + public class JoinMapper: AbstractPropertyContainerMapper, IJoinMapper, IEntitySqlsWithCheckMapper { private readonly HbmJoin hbmJoin; private readonly KeyMapper keyMapper; @@ -79,6 +79,17 @@ public void SqlInsert(string sql) hbmJoin.sqlinsert.Text = new[] { sql }; } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + if (hbmJoin.SqlInsert == null) + { + hbmJoin.sqlinsert = new HbmCustomSQL(); + } + hbmJoin.sqlinsert.checkSpecified = true; + hbmJoin.sqlinsert.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + hbmJoin.sqlinsert.Text = new[] { sql }; + } + public void SqlUpdate(string sql) { if (hbmJoin.SqlUpdate == null) @@ -88,6 +99,17 @@ public void SqlUpdate(string sql) hbmJoin.sqlupdate.Text = new[] { sql }; } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + if (hbmJoin.SqlUpdate == null) + { + hbmJoin.sqlupdate = new HbmCustomSQL(); + } + hbmJoin.sqlupdate.checkSpecified = true; + hbmJoin.sqlupdate.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + hbmJoin.sqlupdate.Text = new[] { sql }; + } + public void SqlDelete(string sql) { if (hbmJoin.SqlDelete == null) @@ -97,6 +119,17 @@ public void SqlDelete(string sql) hbmJoin.sqldelete.Text = new[] { sql }; } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + if (hbmJoin.SqlDelete == null) + { + hbmJoin.sqldelete = new HbmCustomSQL(); + } + hbmJoin.sqldelete.checkSpecified = true; + hbmJoin.sqldelete.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + hbmJoin.sqldelete.Text = new[] { sql }; + } + public void Subselect(string sql) { if (hbmJoin.Subselect == null) diff --git a/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs index f44e196425e..cb676c1bd8f 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs @@ -7,7 +7,7 @@ namespace NHibernate.Mapping.ByCode.Impl { - public class JoinedSubclassMapper : AbstractPropertyContainerMapper, IJoinedSubclassMapper + public class JoinedSubclassMapper : AbstractPropertyContainerMapper, IJoinedSubclassMapper, IEntitySqlsWithCheckMapper { private readonly HbmJoinedSubclass classMapping = new HbmJoinedSubclass(); private readonly KeyMapper keyMapper; @@ -127,6 +127,17 @@ public void SqlInsert(string sql) classMapping.sqlinsert.Text = new[] {sql}; } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + if (classMapping.SqlInsert == null) + { + classMapping.sqlinsert = new HbmCustomSQL(); + } + classMapping.sqlinsert.checkSpecified = true; + classMapping.sqlinsert.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlinsert.Text = new[] { sql }; + } + public void SqlUpdate(string sql) { if (classMapping.SqlUpdate == null) @@ -136,6 +147,17 @@ public void SqlUpdate(string sql) classMapping.sqlupdate.Text = new[] {sql}; } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + if (classMapping.SqlUpdate == null) + { + classMapping.sqlupdate = new HbmCustomSQL(); + } + classMapping.sqlupdate.checkSpecified = true; + classMapping.sqlupdate.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlupdate.Text = new[] { sql }; + } + public void SqlDelete(string sql) { if (classMapping.SqlDelete == null) @@ -145,6 +167,17 @@ public void SqlDelete(string sql) classMapping.sqldelete.Text = new[] {sql}; } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + if (classMapping.SqlDelete == null) + { + classMapping.sqldelete = new HbmCustomSQL(); + } + classMapping.sqldelete.checkSpecified = true; + classMapping.sqldelete.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqldelete.Text = new[] { sql }; + } + public void Subselect(string sql) { if (classMapping.Subselect == null) diff --git a/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs index fda00098024..55217df718d 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs @@ -7,7 +7,7 @@ namespace NHibernate.Mapping.ByCode.Impl { - public class SubclassMapper : AbstractPropertyContainerMapper, ISubclassMapper + public class SubclassMapper : AbstractPropertyContainerMapper, ISubclassMapper, IEntitySqlsWithCheckMapper { private readonly HbmSubclass classMapping = new HbmSubclass(); private Dictionary joinMappers; @@ -59,7 +59,7 @@ public void Extends(System.Type baseType) if (!Container.GetBaseTypes().Contains(baseType)) { throw new ArgumentOutOfRangeException("baseType", - string.Format("{0} is a valid super-class of {1}", baseType, Container)); + string.Format("{0} is a valid super-class of {1}", baseType, Container)); } classMapping.extends = baseType.GetShortClassName(MapDoc); } @@ -175,6 +175,17 @@ public void SqlInsert(string sql) classMapping.sqlinsert.Text = new[] {sql}; } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + if (classMapping.SqlInsert == null) + { + classMapping.sqlinsert = new HbmCustomSQL(); + } + classMapping.sqlinsert.checkSpecified = true; + classMapping.sqlinsert.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlinsert.Text = new[] { sql }; + } + public void SqlUpdate(string sql) { if (classMapping.SqlUpdate == null) @@ -184,6 +195,17 @@ public void SqlUpdate(string sql) classMapping.sqlupdate.Text = new[] {sql}; } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + if (classMapping.SqlUpdate == null) + { + classMapping.sqlupdate = new HbmCustomSQL(); + } + classMapping.sqlupdate.checkSpecified = true; + classMapping.sqlupdate.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlupdate.Text = new[] { sql }; + } + public void SqlDelete(string sql) { if (classMapping.SqlDelete == null) @@ -193,6 +215,17 @@ public void SqlDelete(string sql) classMapping.sqldelete.Text = new[] {sql}; } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + if (classMapping.SqlDelete == null) + { + classMapping.sqldelete = new HbmCustomSQL(); + } + classMapping.sqldelete.checkSpecified = true; + classMapping.sqldelete.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqldelete.Text = new[] { sql }; + } + public void Subselect(string sql) {} public void Filter(string filterName, Action filterMapping) diff --git a/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs index d225c7cd1f7..94c1f872101 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs @@ -7,7 +7,7 @@ namespace NHibernate.Mapping.ByCode.Impl { - public class UnionSubclassMapper : AbstractPropertyContainerMapper, IUnionSubclassMapper + public class UnionSubclassMapper : AbstractPropertyContainerMapper, IUnionSubclassMapper, IEntitySqlsWithCheckMapper { private readonly HbmUnionSubclass classMapping; @@ -129,6 +129,17 @@ public void SqlInsert(string sql) classMapping.sqlinsert.Text = new[] {sql}; } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + if (classMapping.SqlInsert == null) + { + classMapping.sqlinsert = new HbmCustomSQL(); + } + classMapping.sqlinsert.checkSpecified = true; + classMapping.sqlinsert.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlinsert.Text = new[] { sql }; + } + public void SqlUpdate(string sql) { if (classMapping.SqlUpdate == null) @@ -138,6 +149,17 @@ public void SqlUpdate(string sql) classMapping.sqlupdate.Text = new[] {sql}; } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + if (classMapping.SqlUpdate == null) + { + classMapping.sqlupdate = new HbmCustomSQL(); + } + classMapping.sqlupdate.checkSpecified = true; + classMapping.sqlupdate.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlupdate.Text = new[] { sql }; + } + public void SqlDelete(string sql) { if (classMapping.SqlDelete == null) @@ -147,6 +169,17 @@ public void SqlDelete(string sql) classMapping.sqldelete.Text = new[] {sql}; } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + if (classMapping.SqlDelete == null) + { + classMapping.sqldelete = new HbmCustomSQL(); + } + classMapping.sqldelete.checkSpecified = true; + classMapping.sqldelete.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqldelete.Text = new[] { sql }; + } + public void Subselect(string sql) { if (classMapping.Subselect == null) diff --git a/src/NHibernate/Mapping/ByCode/SqlCheck.cs b/src/NHibernate/Mapping/ByCode/SqlCheck.cs new file mode 100644 index 00000000000..e652efe3dc6 --- /dev/null +++ b/src/NHibernate/Mapping/ByCode/SqlCheck.cs @@ -0,0 +1,9 @@ +namespace NHibernate.Mapping.ByCode +{ + public enum SqlCheck + { + None, + RowCount, + Param, + } +} From 95680e78f3df738c677539a797f18244e01583fe Mon Sep 17 00:00:00 2001 From: Alex Zaytsev Date: Sat, 15 May 2021 21:47:11 +1200 Subject: [PATCH 2/4] Implement ICollectionSqlsWithCheckMapper --- .../ByCode/ICollectionSqlsWithCheckMapper.cs | 44 +++++++++++++++++ .../Mapping/ByCode/Impl/BagMapper.cs | 48 ++++++++++++++++++- .../Mapping/ByCode/Impl/ClassMapper.cs | 6 +-- .../Impl/CustomizersImpl/ClassCustomizer.cs | 4 +- .../CollectionPropertiesCustomizer.cs | 24 +++++++++- .../Impl/CustomizersImpl/JoinCustomizer.cs | 2 +- .../JoinedSubclassCustomizer.cs | 2 +- .../CustomizersImpl/SubclassCustomizer.cs | 2 +- .../UnionSubclassCustomizer.cs | 2 +- .../Mapping/ByCode/Impl/IdBagMapper.cs | 47 +++++++++++++++++- .../Mapping/ByCode/Impl/JoinMapper.cs | 6 +-- .../ByCode/Impl/JoinedSubclassMapper.cs | 6 +-- .../Mapping/ByCode/Impl/ListMapper.cs | 47 +++++++++++++++++- .../Mapping/ByCode/Impl/MapMapper.cs | 47 +++++++++++++++++- .../Mapping/ByCode/Impl/SetMapper.cs | 47 +++++++++++++++++- .../Mapping/ByCode/Impl/SubclassMapper.cs | 6 +-- .../ByCode/Impl/UnionSubclassMapper.cs | 6 +-- src/NHibernate/Mapping/ByCode/SqlCheck.cs | 21 ++++++++ 18 files changed, 334 insertions(+), 33 deletions(-) create mode 100644 src/NHibernate/Mapping/ByCode/ICollectionSqlsWithCheckMapper.cs diff --git a/src/NHibernate/Mapping/ByCode/ICollectionSqlsWithCheckMapper.cs b/src/NHibernate/Mapping/ByCode/ICollectionSqlsWithCheckMapper.cs new file mode 100644 index 00000000000..7951f0ffde7 --- /dev/null +++ b/src/NHibernate/Mapping/ByCode/ICollectionSqlsWithCheckMapper.cs @@ -0,0 +1,44 @@ +using NHibernate.Util; + +namespace NHibernate.Mapping.ByCode +{ + //6.0 TODO: merge into ICollectionSqlsMapper + public interface ICollectionSqlsWithCheckMapper + { + void SqlInsert(string sql, SqlCheck sqlCheck); + void SqlUpdate(string sql, SqlCheck sqlCheck); + void SqlDelete(string sql, SqlCheck sqlCheck); + void SqlDeleteAll(string sql, SqlCheck sqlCheck); + } + + public static class CollectionSqlsWithCheckMapperExtensions + { + public static void SqlInsert(this ICollectionSqlsMapper mapper, string sql, SqlCheck sqlCheck) + { + ReflectHelper + .CastOrThrow(mapper, "SqlInsert with sqlCheck") + .SqlInsert(sql, sqlCheck); + } + + public static void SqlUpdate(this ICollectionSqlsMapper mapper, string sql, SqlCheck sqlCheck) + { + ReflectHelper + .CastOrThrow(mapper, "SqlUpdate with sqlCheck") + .SqlUpdate(sql, sqlCheck); + } + + public static void SqlDelete(this ICollectionSqlsMapper mapper, string sql, SqlCheck sqlCheck) + { + ReflectHelper + .CastOrThrow(mapper, "SqlDelete with sqlCheck") + .SqlDelete(sql, sqlCheck); + } + + public static void SqlDeleteAll(this ICollectionSqlsMapper mapper, string sql, SqlCheck sqlCheck) + { + ReflectHelper + .CastOrThrow(mapper, "SqlDeleteAll with sqlCheck") + .SqlDeleteAll(sql, sqlCheck); + } + } +} diff --git a/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs index edebc680129..cb7823533b4 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs @@ -8,7 +8,7 @@ namespace NHibernate.Mapping.ByCode.Impl { - public class BagMapper : IBagPropertiesMapper + public class BagMapper : IBagPropertiesMapper, ICollectionSqlsWithCheckMapper { private readonly IAccessorPropertyMapper entityPropertyMapper; private readonly KeyMapper keyMapper; @@ -249,6 +249,16 @@ public void SqlInsert(string sql) mapping.sqlinsert.Text = new[] {sql}; } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlInsert == null) + { + mapping.sqlinsert = new HbmCustomSQL(); + } + mapping.sqlinsert.Text = new[] {sql}; + mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlUpdate(string sql) { if (mapping.SqlUpdate == null) @@ -258,6 +268,17 @@ public void SqlUpdate(string sql) mapping.sqlupdate.Text = new[] {sql}; } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlUpdate == null) + { + mapping.sqlupdate = new HbmCustomSQL(); + } + mapping.sqlupdate.Text = new[] {sql}; + mapping.sqlupdate.checkSpecified = true; + mapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlDelete(string sql) { if (mapping.SqlDelete == null) @@ -267,6 +288,17 @@ public void SqlDelete(string sql) mapping.sqldelete.Text = new[] {sql}; } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlDelete == null) + { + mapping.sqldelete = new HbmCustomSQL(); + } + mapping.sqldelete.Text = new[] {sql}; + mapping.sqldelete.checkSpecified = true; + mapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlDeleteAll(string sql) { if (mapping.SqlDeleteAll == null) @@ -276,6 +308,17 @@ public void SqlDeleteAll(string sql) mapping.sqldeleteall.Text = new[] {sql}; } + public void SqlDeleteAll(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlDeleteAll == null) + { + mapping.sqldeleteall = new HbmCustomSQL(); + } + mapping.sqldeleteall.Text = new[] {sql}; + mapping.sqldeleteall.checkSpecified = true; + mapping.sqldeleteall.check = sqlCheck.ToHbmSqlCheck(); + } + public void Subselect(string sql) { if (mapping.Subselect == null) @@ -286,5 +329,6 @@ public void Subselect(string sql) } #endregion + } -} \ No newline at end of file +} diff --git a/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs index fa84fdb3045..2748a08cd31 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs @@ -376,7 +376,7 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) classMapping.sqlinsert = new HbmCustomSQL(); } classMapping.sqlinsert.checkSpecified = true; - classMapping.sqlinsert.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); classMapping.sqlinsert.Text = new[] { sql }; } @@ -396,7 +396,7 @@ public void SqlUpdate(string sql, SqlCheck sqlCheck) classMapping.sqlupdate = new HbmCustomSQL(); } classMapping.sqlupdate.checkSpecified = true; - classMapping.sqlupdate.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); classMapping.sqlupdate.Text = new[] { sql }; } @@ -416,7 +416,7 @@ public void SqlDelete(string sql, SqlCheck sqlCheck) classMapping.sqldelete = new HbmCustomSQL(); } classMapping.sqldelete.checkSpecified = true; - classMapping.sqldelete.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); classMapping.sqldelete.Text = new[] { sql }; } diff --git a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs index c676dc2e688..c4693e43898 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs @@ -6,7 +6,7 @@ namespace NHibernate.Mapping.ByCode.Impl.CustomizersImpl { - public class ClassCustomizer : PropertyContainerCustomizer, IClassMapper, IConformistHoldersProvider where TEntity : class + public class ClassCustomizer : PropertyContainerCustomizer, IClassMapper, IConformistHoldersProvider, IEntitySqlsWithCheckMapper where TEntity : class { private Dictionary> joinCustomizers; @@ -306,4 +306,4 @@ IModelExplicitDeclarationsHolder IConformistHoldersProvider.ExplicitDeclarations get { return ExplicitDeclarationsHolder; } } } -} \ No newline at end of file +} diff --git a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/CollectionPropertiesCustomizer.cs b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/CollectionPropertiesCustomizer.cs index 111c009144e..ace01af5402 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/CollectionPropertiesCustomizer.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/CollectionPropertiesCustomizer.cs @@ -6,7 +6,7 @@ namespace NHibernate.Mapping.ByCode.Impl.CustomizersImpl { - public class CollectionPropertiesCustomizer : ICollectionPropertiesMapper + public class CollectionPropertiesCustomizer : ICollectionPropertiesMapper, ICollectionSqlsWithCheckMapper { private readonly IKeyMapper keyMapper; @@ -157,21 +157,41 @@ public void SqlInsert(string sql) CustomizersHolder.AddCustomizer(PropertyPath, (ICollectionPropertiesMapper x) => x.SqlInsert(sql)); } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(PropertyPath, (ICollectionPropertiesMapper x) => x.SqlInsert(sql, sqlCheck)); + } + public void SqlUpdate(string sql) { CustomizersHolder.AddCustomizer(PropertyPath, (ICollectionPropertiesMapper x) => x.SqlUpdate(sql)); } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(PropertyPath, (ICollectionPropertiesMapper x) => x.SqlUpdate(sql, sqlCheck)); + } + public void SqlDelete(string sql) { CustomizersHolder.AddCustomizer(PropertyPath, (ICollectionPropertiesMapper x) => x.SqlDelete(sql)); } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(PropertyPath, (ICollectionPropertiesMapper x) => x.SqlDelete(sql, sqlCheck)); + } + public void SqlDeleteAll(string sql) { CustomizersHolder.AddCustomizer(PropertyPath, (ICollectionPropertiesMapper x) => x.SqlDeleteAll(sql)); } + public void SqlDeleteAll(string sql, SqlCheck sqlCheck) + { + CustomizersHolder.AddCustomizer(PropertyPath, (ICollectionPropertiesMapper x) => x.SqlDeleteAll(sql, sqlCheck)); + } + public void Subselect(string sql) { CustomizersHolder.AddCustomizer(PropertyPath, (ICollectionPropertiesMapper x) => x.Subselect(sql)); @@ -179,4 +199,4 @@ public void Subselect(string sql) #endregion } -} \ No newline at end of file +} diff --git a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinCustomizer.cs b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinCustomizer.cs index 762c39366be..04f212833d8 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinCustomizer.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinCustomizer.cs @@ -5,7 +5,7 @@ namespace NHibernate.Mapping.ByCode.Impl.CustomizersImpl { - public class JoinCustomizer : PropertyContainerCustomizer, IJoinMapper + public class JoinCustomizer : PropertyContainerCustomizer, IJoinMapper, IEntitySqlsWithCheckMapper where TEntity : class { private readonly string splitGroupId; diff --git a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs index c8236fce0aa..d36a82bf8d4 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs @@ -3,7 +3,7 @@ namespace NHibernate.Mapping.ByCode.Impl.CustomizersImpl { - public class JoinedSubclassCustomizer : PropertyContainerCustomizer, IJoinedSubclassMapper, IConformistHoldersProvider where TEntity : class + public class JoinedSubclassCustomizer : PropertyContainerCustomizer, IJoinedSubclassMapper, IConformistHoldersProvider, IEntitySqlsWithCheckMapper where TEntity : class { private readonly IKeyMapper keyMapper; diff --git a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/SubclassCustomizer.cs b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/SubclassCustomizer.cs index 74b92f305f4..d3a63e1efee 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/SubclassCustomizer.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/SubclassCustomizer.cs @@ -4,7 +4,7 @@ namespace NHibernate.Mapping.ByCode.Impl.CustomizersImpl { - public class SubclassCustomizer : PropertyContainerCustomizer, ISubclassMapper, IConformistHoldersProvider where TEntity : class + public class SubclassCustomizer : PropertyContainerCustomizer, ISubclassMapper, IConformistHoldersProvider, IEntitySqlsWithCheckMapper where TEntity : class { private Dictionary> joinCustomizers; diff --git a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/UnionSubclassCustomizer.cs b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/UnionSubclassCustomizer.cs index 0b879c7dfae..586c3d0bda2 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/UnionSubclassCustomizer.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/UnionSubclassCustomizer.cs @@ -3,7 +3,7 @@ namespace NHibernate.Mapping.ByCode.Impl.CustomizersImpl { - public class UnionSubclassCustomizer : PropertyContainerCustomizer, IUnionSubclassMapper, IConformistHoldersProvider where TEntity : class + public class UnionSubclassCustomizer : PropertyContainerCustomizer, IUnionSubclassMapper, IConformistHoldersProvider, IEntitySqlsWithCheckMapper where TEntity : class { public UnionSubclassCustomizer(IModelExplicitDeclarationsHolder explicitDeclarationsHolder, ICustomizersHolder customizersHolder) : base(explicitDeclarationsHolder, customizersHolder, null) diff --git a/src/NHibernate/Mapping/ByCode/Impl/IdBagMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/IdBagMapper.cs index 82cd3713fdb..ad70721ebd9 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/IdBagMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/IdBagMapper.cs @@ -8,7 +8,7 @@ namespace NHibernate.Mapping.ByCode.Impl { - public class IdBagMapper : IIdBagPropertiesMapper + public class IdBagMapper : IIdBagPropertiesMapper, ICollectionSqlsWithCheckMapper { private readonly IAccessorPropertyMapper entityPropertyMapper; private readonly KeyMapper keyMapper; @@ -259,6 +259,16 @@ public void SqlInsert(string sql) mapping.sqlinsert.Text = new[] {sql}; } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlInsert == null) + { + mapping.sqlinsert = new HbmCustomSQL(); + } + mapping.sqlinsert.Text = new[] {sql}; + mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlUpdate(string sql) { if (mapping.SqlUpdate == null) @@ -268,6 +278,17 @@ public void SqlUpdate(string sql) mapping.sqlupdate.Text = new[] {sql}; } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlUpdate == null) + { + mapping.sqlupdate = new HbmCustomSQL(); + } + mapping.sqlupdate.Text = new[] {sql}; + mapping.sqlupdate.checkSpecified = true; + mapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlDelete(string sql) { if (mapping.SqlDelete == null) @@ -277,6 +298,17 @@ public void SqlDelete(string sql) mapping.sqldelete.Text = new[] {sql}; } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlDelete == null) + { + mapping.sqldelete = new HbmCustomSQL(); + } + mapping.sqldelete.Text = new[] {sql}; + mapping.sqldelete.checkSpecified = true; + mapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlDeleteAll(string sql) { if (mapping.SqlDeleteAll == null) @@ -286,6 +318,17 @@ public void SqlDeleteAll(string sql) mapping.sqldeleteall.Text = new[] {sql}; } + public void SqlDeleteAll(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlDeleteAll == null) + { + mapping.sqldeleteall = new HbmCustomSQL(); + } + mapping.sqldeleteall.Text = new[] {sql}; + mapping.sqldeleteall.checkSpecified = true; + mapping.sqldeleteall.check = sqlCheck.ToHbmSqlCheck(); + } + public void Subselect(string sql) { if (mapping.Subselect == null) @@ -297,4 +340,4 @@ public void Subselect(string sql) #endregion } -} \ No newline at end of file +} diff --git a/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs index d90ab26fc89..1424c6645c5 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs @@ -86,7 +86,7 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) hbmJoin.sqlinsert = new HbmCustomSQL(); } hbmJoin.sqlinsert.checkSpecified = true; - hbmJoin.sqlinsert.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + hbmJoin.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); hbmJoin.sqlinsert.Text = new[] { sql }; } @@ -106,7 +106,7 @@ public void SqlUpdate(string sql, SqlCheck sqlCheck) hbmJoin.sqlupdate = new HbmCustomSQL(); } hbmJoin.sqlupdate.checkSpecified = true; - hbmJoin.sqlupdate.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + hbmJoin.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); hbmJoin.sqlupdate.Text = new[] { sql }; } @@ -126,7 +126,7 @@ public void SqlDelete(string sql, SqlCheck sqlCheck) hbmJoin.sqldelete = new HbmCustomSQL(); } hbmJoin.sqldelete.checkSpecified = true; - hbmJoin.sqldelete.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + hbmJoin.sqldelete.check = sqlCheck.ToHbmSqlCheck(); hbmJoin.sqldelete.Text = new[] { sql }; } diff --git a/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs index cb676c1bd8f..71381e7d43d 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs @@ -134,7 +134,7 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) classMapping.sqlinsert = new HbmCustomSQL(); } classMapping.sqlinsert.checkSpecified = true; - classMapping.sqlinsert.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); classMapping.sqlinsert.Text = new[] { sql }; } @@ -154,7 +154,7 @@ public void SqlUpdate(string sql, SqlCheck sqlCheck) classMapping.sqlupdate = new HbmCustomSQL(); } classMapping.sqlupdate.checkSpecified = true; - classMapping.sqlupdate.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); classMapping.sqlupdate.Text = new[] { sql }; } @@ -174,7 +174,7 @@ public void SqlDelete(string sql, SqlCheck sqlCheck) classMapping.sqldelete = new HbmCustomSQL(); } classMapping.sqldelete.checkSpecified = true; - classMapping.sqldelete.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); classMapping.sqldelete.Text = new[] { sql }; } diff --git a/src/NHibernate/Mapping/ByCode/Impl/ListMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/ListMapper.cs index 10c2b5d90e7..a2430e91740 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/ListMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/ListMapper.cs @@ -8,7 +8,7 @@ namespace NHibernate.Mapping.ByCode.Impl { - public class ListMapper : IListPropertiesMapper + public class ListMapper : IListPropertiesMapper, ICollectionSqlsWithCheckMapper { private readonly IAccessorPropertyMapper entityPropertyMapper; private readonly KeyMapper keyMapper; @@ -257,6 +257,16 @@ public void SqlInsert(string sql) mapping.sqlinsert.Text = new[] {sql}; } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlInsert == null) + { + mapping.sqlinsert = new HbmCustomSQL(); + } + mapping.sqlinsert.Text = new[] {sql}; + mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlUpdate(string sql) { if (mapping.SqlUpdate == null) @@ -266,6 +276,17 @@ public void SqlUpdate(string sql) mapping.sqlupdate.Text = new[] {sql}; } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlUpdate == null) + { + mapping.sqlupdate = new HbmCustomSQL(); + } + mapping.sqlupdate.Text = new[] {sql}; + mapping.sqlupdate.checkSpecified = true; + mapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlDelete(string sql) { if (mapping.SqlDelete == null) @@ -275,6 +296,17 @@ public void SqlDelete(string sql) mapping.sqldelete.Text = new[] {sql}; } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlDelete == null) + { + mapping.sqldelete = new HbmCustomSQL(); + } + mapping.sqldelete.Text = new[] {sql}; + mapping.sqldelete.checkSpecified = true; + mapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlDeleteAll(string sql) { if (mapping.SqlDeleteAll == null) @@ -284,6 +316,17 @@ public void SqlDeleteAll(string sql) mapping.sqldeleteall.Text = new[] {sql}; } + public void SqlDeleteAll(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlDeleteAll == null) + { + mapping.sqldeleteall = new HbmCustomSQL(); + } + mapping.sqldeleteall.Text = new[] {sql}; + mapping.sqldeleteall.checkSpecified = true; + mapping.sqldeleteall.check = sqlCheck.ToHbmSqlCheck(); + } + public void Subselect(string sql) { if (mapping.Subselect == null) @@ -295,4 +338,4 @@ public void Subselect(string sql) #endregion } -} \ No newline at end of file +} diff --git a/src/NHibernate/Mapping/ByCode/Impl/MapMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/MapMapper.cs index 836049cc681..eb5d4a92979 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/MapMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/MapMapper.cs @@ -8,7 +8,7 @@ namespace NHibernate.Mapping.ByCode.Impl { - public class MapMapper : IMapPropertiesMapper + public class MapMapper : IMapPropertiesMapper, ICollectionSqlsWithCheckMapper { private readonly IAccessorPropertyMapper entityPropertyMapper; private readonly KeyMapper keyMapper; @@ -269,6 +269,16 @@ public void SqlInsert(string sql) mapping.sqlinsert.Text = new[] {sql}; } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlInsert == null) + { + mapping.sqlinsert = new HbmCustomSQL(); + } + mapping.sqlinsert.Text = new[] {sql}; + mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlUpdate(string sql) { if (mapping.SqlUpdate == null) @@ -278,6 +288,17 @@ public void SqlUpdate(string sql) mapping.sqlupdate.Text = new[] {sql}; } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlUpdate == null) + { + mapping.sqlupdate = new HbmCustomSQL(); + } + mapping.sqlupdate.Text = new[] {sql}; + mapping.sqlupdate.checkSpecified = true; + mapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlDelete(string sql) { if (mapping.SqlDelete == null) @@ -287,6 +308,17 @@ public void SqlDelete(string sql) mapping.sqldelete.Text = new[] {sql}; } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlDelete == null) + { + mapping.sqldelete = new HbmCustomSQL(); + } + mapping.sqldelete.Text = new[] {sql}; + mapping.sqldelete.checkSpecified = true; + mapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlDeleteAll(string sql) { if (mapping.SqlDeleteAll == null) @@ -296,6 +328,17 @@ public void SqlDeleteAll(string sql) mapping.sqldeleteall.Text = new[] {sql}; } + public void SqlDeleteAll(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlDeleteAll == null) + { + mapping.sqldeleteall = new HbmCustomSQL(); + } + mapping.sqldeleteall.Text = new[] {sql}; + mapping.sqldeleteall.checkSpecified = true; + mapping.sqldeleteall.check = sqlCheck.ToHbmSqlCheck(); + } + public void Subselect(string sql) { if (mapping.Subselect == null) @@ -307,4 +350,4 @@ public void Subselect(string sql) #endregion } -} \ No newline at end of file +} diff --git a/src/NHibernate/Mapping/ByCode/Impl/SetMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/SetMapper.cs index 281d42543bc..63c01378ab4 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/SetMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/SetMapper.cs @@ -8,7 +8,7 @@ namespace NHibernate.Mapping.ByCode.Impl { - public class SetMapper : ISetPropertiesMapper + public class SetMapper : ISetPropertiesMapper, ICollectionSqlsWithCheckMapper { private readonly IAccessorPropertyMapper entityPropertyMapper; private readonly KeyMapper keyMapper; @@ -254,6 +254,16 @@ public void SqlInsert(string sql) mapping.sqlinsert.Text = new[] {sql}; } + public void SqlInsert(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlInsert == null) + { + mapping.sqlinsert = new HbmCustomSQL(); + } + mapping.sqlinsert.Text = new[] {sql}; + mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlUpdate(string sql) { if (mapping.SqlUpdate == null) @@ -263,6 +273,17 @@ public void SqlUpdate(string sql) mapping.sqlupdate.Text = new[] {sql}; } + public void SqlUpdate(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlUpdate == null) + { + mapping.sqlupdate = new HbmCustomSQL(); + } + mapping.sqlupdate.Text = new[] {sql}; + mapping.sqlupdate.checkSpecified = true; + mapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlDelete(string sql) { if (mapping.SqlDelete == null) @@ -272,6 +293,17 @@ public void SqlDelete(string sql) mapping.sqldelete.Text = new[] {sql}; } + public void SqlDelete(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlDelete == null) + { + mapping.sqldelete = new HbmCustomSQL(); + } + mapping.sqldelete.Text = new[] {sql}; + mapping.sqldelete.checkSpecified = true; + mapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlDeleteAll(string sql) { if (mapping.SqlDeleteAll == null) @@ -281,6 +313,17 @@ public void SqlDeleteAll(string sql) mapping.sqldeleteall.Text = new[] {sql}; } + public void SqlDeleteAll(string sql, SqlCheck sqlCheck) + { + if (mapping.SqlDeleteAll == null) + { + mapping.sqldeleteall = new HbmCustomSQL(); + } + mapping.sqldeleteall.Text = new[] {sql}; + mapping.sqldeleteall.checkSpecified = true; + mapping.sqldeleteall.check = sqlCheck.ToHbmSqlCheck(); + } + public void Subselect(string sql) { if (mapping.Subselect == null) @@ -292,4 +335,4 @@ public void Subselect(string sql) #endregion } -} \ No newline at end of file +} diff --git a/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs index 55217df718d..bbb2fee72f4 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs @@ -182,7 +182,7 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) classMapping.sqlinsert = new HbmCustomSQL(); } classMapping.sqlinsert.checkSpecified = true; - classMapping.sqlinsert.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); classMapping.sqlinsert.Text = new[] { sql }; } @@ -202,7 +202,7 @@ public void SqlUpdate(string sql, SqlCheck sqlCheck) classMapping.sqlupdate = new HbmCustomSQL(); } classMapping.sqlupdate.checkSpecified = true; - classMapping.sqlupdate.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); classMapping.sqlupdate.Text = new[] { sql }; } @@ -222,7 +222,7 @@ public void SqlDelete(string sql, SqlCheck sqlCheck) classMapping.sqldelete = new HbmCustomSQL(); } classMapping.sqldelete.checkSpecified = true; - classMapping.sqldelete.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); classMapping.sqldelete.Text = new[] { sql }; } diff --git a/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs index 94c1f872101..ba5072aa024 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs @@ -136,7 +136,7 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) classMapping.sqlinsert = new HbmCustomSQL(); } classMapping.sqlinsert.checkSpecified = true; - classMapping.sqlinsert.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); classMapping.sqlinsert.Text = new[] { sql }; } @@ -156,7 +156,7 @@ public void SqlUpdate(string sql, SqlCheck sqlCheck) classMapping.sqlupdate = new HbmCustomSQL(); } classMapping.sqlupdate.checkSpecified = true; - classMapping.sqlupdate.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); classMapping.sqlupdate.Text = new[] { sql }; } @@ -176,7 +176,7 @@ public void SqlDelete(string sql, SqlCheck sqlCheck) classMapping.sqldelete = new HbmCustomSQL(); } classMapping.sqldelete.checkSpecified = true; - classMapping.sqldelete.check = (HbmCustomSQLCheck)Enum.Parse(typeof(HbmCustomSQLCheck), sqlCheck.ToString(), true); + classMapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); classMapping.sqldelete.Text = new[] { sql }; } diff --git a/src/NHibernate/Mapping/ByCode/SqlCheck.cs b/src/NHibernate/Mapping/ByCode/SqlCheck.cs index e652efe3dc6..8df23b68de7 100644 --- a/src/NHibernate/Mapping/ByCode/SqlCheck.cs +++ b/src/NHibernate/Mapping/ByCode/SqlCheck.cs @@ -1,3 +1,6 @@ +using System; +using NHibernate.Cfg.MappingSchema; + namespace NHibernate.Mapping.ByCode { public enum SqlCheck @@ -6,4 +9,22 @@ public enum SqlCheck RowCount, Param, } + + internal static class SqlCheckExtensions + { + public static HbmCustomSQLCheck ToHbmSqlCheck(this SqlCheck check) + { + switch (check) + { + case SqlCheck.None: + return HbmCustomSQLCheck.None; + case SqlCheck.RowCount: + return HbmCustomSQLCheck.Rowcount; + case SqlCheck.Param: + return HbmCustomSQLCheck.Param; + default: + throw new ArgumentOutOfRangeException(nameof(check), check, null); + } + } + } } From fbc2de6b47655ed8b739dc6f8c3b3ed5799e39f6 Mon Sep 17 00:00:00 2001 From: Alex Zaytsev Date: Sat, 15 May 2021 21:57:13 +1200 Subject: [PATCH 3/4] Revert whitespace changes --- src/NHibernate/Mapping/ByCode/IClassMapper.cs | 2 +- src/NHibernate/Mapping/ByCode/IJoinMapper.cs | 2 +- src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs | 1 - src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/NHibernate/Mapping/ByCode/IClassMapper.cs b/src/NHibernate/Mapping/ByCode/IClassMapper.cs index 8caba389064..e16e41d2758 100644 --- a/src/NHibernate/Mapping/ByCode/IClassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/IClassMapper.cs @@ -77,4 +77,4 @@ public interface IClassMapper : IClassAttributesMapper, IPrope { void Join(string splitGroupId, Action> splitMapping); } -} +} \ No newline at end of file diff --git a/src/NHibernate/Mapping/ByCode/IJoinMapper.cs b/src/NHibernate/Mapping/ByCode/IJoinMapper.cs index 7f188b71be5..e73ea8a6667 100644 --- a/src/NHibernate/Mapping/ByCode/IJoinMapper.cs +++ b/src/NHibernate/Mapping/ByCode/IJoinMapper.cs @@ -28,4 +28,4 @@ public interface IJoinAttributesMapper : IEntitySqlsMapper where TEntit public interface IJoinMapper : IJoinAttributesMapper, ICollectionPropertiesContainerMapper, IBasePlainPropertyContainerMapper where TEntity : class {} -} +} \ No newline at end of file diff --git a/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs index cb7823533b4..218f9536ef0 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs @@ -329,6 +329,5 @@ public void Subselect(string sql) } #endregion - } } diff --git a/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs index bbb2fee72f4..1f44bbb0ce2 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs @@ -59,7 +59,7 @@ public void Extends(System.Type baseType) if (!Container.GetBaseTypes().Contains(baseType)) { throw new ArgumentOutOfRangeException("baseType", - string.Format("{0} is a valid super-class of {1}", baseType, Container)); + string.Format("{0} is a valid super-class of {1}", baseType, Container)); } classMapping.extends = baseType.GetShortClassName(MapDoc); } From 8851011b33381a415ffc1a09c05dd81d69566d76 Mon Sep 17 00:00:00 2001 From: Alex Zaytsev Date: Mon, 17 May 2021 22:49:36 +1200 Subject: [PATCH 4/4] Add missing `mapping.sqlinsert.checkSpecified = true;` --- src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs | 1 + src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs | 6 +++--- src/NHibernate/Mapping/ByCode/Impl/IdBagMapper.cs | 1 + src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs | 6 +++--- src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs | 6 +++--- src/NHibernate/Mapping/ByCode/Impl/ListMapper.cs | 1 + src/NHibernate/Mapping/ByCode/Impl/MapMapper.cs | 1 + src/NHibernate/Mapping/ByCode/Impl/SetMapper.cs | 1 + src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs | 6 +++--- src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs | 6 +++--- 10 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs index 218f9536ef0..2030359b0d2 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs @@ -256,6 +256,7 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) mapping.sqlinsert = new HbmCustomSQL(); } mapping.sqlinsert.Text = new[] {sql}; + mapping.sqlinsert.checkSpecified = true; mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); } diff --git a/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs index 2748a08cd31..1dd5a98d91d 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs @@ -375,9 +375,9 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) { classMapping.sqlinsert = new HbmCustomSQL(); } + classMapping.sqlinsert.Text = new[] { sql }; classMapping.sqlinsert.checkSpecified = true; classMapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); - classMapping.sqlinsert.Text = new[] { sql }; } public void SqlUpdate(string sql) @@ -395,9 +395,9 @@ public void SqlUpdate(string sql, SqlCheck sqlCheck) { classMapping.sqlupdate = new HbmCustomSQL(); } + classMapping.sqlupdate.Text = new[] { sql }; classMapping.sqlupdate.checkSpecified = true; classMapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); - classMapping.sqlupdate.Text = new[] { sql }; } public void SqlDelete(string sql) @@ -415,9 +415,9 @@ public void SqlDelete(string sql, SqlCheck sqlCheck) { classMapping.sqldelete = new HbmCustomSQL(); } + classMapping.sqldelete.Text = new[] { sql }; classMapping.sqldelete.checkSpecified = true; classMapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); - classMapping.sqldelete.Text = new[] { sql }; } public void Subselect(string sql) diff --git a/src/NHibernate/Mapping/ByCode/Impl/IdBagMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/IdBagMapper.cs index ad70721ebd9..c44698853c5 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/IdBagMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/IdBagMapper.cs @@ -266,6 +266,7 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) mapping.sqlinsert = new HbmCustomSQL(); } mapping.sqlinsert.Text = new[] {sql}; + mapping.sqlinsert.checkSpecified = true; mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); } diff --git a/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs index 1424c6645c5..6bf4aeaede8 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs @@ -85,9 +85,9 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) { hbmJoin.sqlinsert = new HbmCustomSQL(); } + hbmJoin.sqlinsert.Text = new[] { sql }; hbmJoin.sqlinsert.checkSpecified = true; hbmJoin.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); - hbmJoin.sqlinsert.Text = new[] { sql }; } public void SqlUpdate(string sql) @@ -105,9 +105,9 @@ public void SqlUpdate(string sql, SqlCheck sqlCheck) { hbmJoin.sqlupdate = new HbmCustomSQL(); } + hbmJoin.sqlupdate.Text = new[] { sql }; hbmJoin.sqlupdate.checkSpecified = true; hbmJoin.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); - hbmJoin.sqlupdate.Text = new[] { sql }; } public void SqlDelete(string sql) @@ -125,9 +125,9 @@ public void SqlDelete(string sql, SqlCheck sqlCheck) { hbmJoin.sqldelete = new HbmCustomSQL(); } + hbmJoin.sqldelete.Text = new[] { sql }; hbmJoin.sqldelete.checkSpecified = true; hbmJoin.sqldelete.check = sqlCheck.ToHbmSqlCheck(); - hbmJoin.sqldelete.Text = new[] { sql }; } public void Subselect(string sql) diff --git a/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs index 71381e7d43d..40ff5125ec6 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs @@ -133,9 +133,9 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) { classMapping.sqlinsert = new HbmCustomSQL(); } + classMapping.sqlinsert.Text = new[] { sql }; classMapping.sqlinsert.checkSpecified = true; classMapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); - classMapping.sqlinsert.Text = new[] { sql }; } public void SqlUpdate(string sql) @@ -153,9 +153,9 @@ public void SqlUpdate(string sql, SqlCheck sqlCheck) { classMapping.sqlupdate = new HbmCustomSQL(); } + classMapping.sqlupdate.Text = new[] { sql }; classMapping.sqlupdate.checkSpecified = true; classMapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); - classMapping.sqlupdate.Text = new[] { sql }; } public void SqlDelete(string sql) @@ -173,9 +173,9 @@ public void SqlDelete(string sql, SqlCheck sqlCheck) { classMapping.sqldelete = new HbmCustomSQL(); } + classMapping.sqldelete.Text = new[] { sql }; classMapping.sqldelete.checkSpecified = true; classMapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); - classMapping.sqldelete.Text = new[] { sql }; } public void Subselect(string sql) diff --git a/src/NHibernate/Mapping/ByCode/Impl/ListMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/ListMapper.cs index a2430e91740..bf8fd38e94c 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/ListMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/ListMapper.cs @@ -264,6 +264,7 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) mapping.sqlinsert = new HbmCustomSQL(); } mapping.sqlinsert.Text = new[] {sql}; + mapping.sqlinsert.checkSpecified = true; mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); } diff --git a/src/NHibernate/Mapping/ByCode/Impl/MapMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/MapMapper.cs index eb5d4a92979..61eebae6241 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/MapMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/MapMapper.cs @@ -276,6 +276,7 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) mapping.sqlinsert = new HbmCustomSQL(); } mapping.sqlinsert.Text = new[] {sql}; + mapping.sqlinsert.checkSpecified = true; mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); } diff --git a/src/NHibernate/Mapping/ByCode/Impl/SetMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/SetMapper.cs index 63c01378ab4..b6203dd388f 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/SetMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/SetMapper.cs @@ -261,6 +261,7 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) mapping.sqlinsert = new HbmCustomSQL(); } mapping.sqlinsert.Text = new[] {sql}; + mapping.sqlinsert.checkSpecified = true; mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); } diff --git a/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs index 1f44bbb0ce2..fc32a688c3a 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs @@ -181,9 +181,9 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) { classMapping.sqlinsert = new HbmCustomSQL(); } + classMapping.sqlinsert.Text = new[] { sql }; classMapping.sqlinsert.checkSpecified = true; classMapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); - classMapping.sqlinsert.Text = new[] { sql }; } public void SqlUpdate(string sql) @@ -201,9 +201,9 @@ public void SqlUpdate(string sql, SqlCheck sqlCheck) { classMapping.sqlupdate = new HbmCustomSQL(); } + classMapping.sqlupdate.Text = new[] { sql }; classMapping.sqlupdate.checkSpecified = true; classMapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); - classMapping.sqlupdate.Text = new[] { sql }; } public void SqlDelete(string sql) @@ -221,9 +221,9 @@ public void SqlDelete(string sql, SqlCheck sqlCheck) { classMapping.sqldelete = new HbmCustomSQL(); } + classMapping.sqldelete.Text = new[] { sql }; classMapping.sqldelete.checkSpecified = true; classMapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); - classMapping.sqldelete.Text = new[] { sql }; } public void Subselect(string sql) {} diff --git a/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs index ba5072aa024..1a3dd96d156 100644 --- a/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs +++ b/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs @@ -135,9 +135,9 @@ public void SqlInsert(string sql, SqlCheck sqlCheck) { classMapping.sqlinsert = new HbmCustomSQL(); } + classMapping.sqlinsert.Text = new[] { sql }; classMapping.sqlinsert.checkSpecified = true; classMapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); - classMapping.sqlinsert.Text = new[] { sql }; } public void SqlUpdate(string sql) @@ -155,9 +155,9 @@ public void SqlUpdate(string sql, SqlCheck sqlCheck) { classMapping.sqlupdate = new HbmCustomSQL(); } + classMapping.sqlupdate.Text = new[] { sql }; classMapping.sqlupdate.checkSpecified = true; classMapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); - classMapping.sqlupdate.Text = new[] { sql }; } public void SqlDelete(string sql) @@ -175,9 +175,9 @@ public void SqlDelete(string sql, SqlCheck sqlCheck) { classMapping.sqldelete = new HbmCustomSQL(); } + classMapping.sqldelete.Text = new[] { sql }; classMapping.sqldelete.checkSpecified = true; classMapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); - classMapping.sqldelete.Text = new[] { sql }; } public void Subselect(string sql)