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/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/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/Impl/BagMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs index edebc680129..2030359b0d2 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,17 @@ 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.checkSpecified = true; + mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlUpdate(string sql) { if (mapping.SqlUpdate == null) @@ -258,6 +269,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 +289,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 +309,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) @@ -287,4 +331,4 @@ 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 8b397778849..1dd5a98d91d 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.Text = new[] { sql }; + classMapping.sqlinsert.checkSpecified = true; + classMapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + 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.Text = new[] { sql }; + classMapping.sqlupdate.checkSpecified = true; + classMapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); + } + 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.Text = new[] { sql }; + classMapping.sqldelete.checkSpecified = true; + classMapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); + } + 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..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; @@ -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)); @@ -291,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 530890e04f0..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; @@ -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..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; @@ -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..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; @@ -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..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) @@ -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/IdBagMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/IdBagMapper.cs index 82cd3713fdb..c44698853c5 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,17 @@ 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.checkSpecified = true; + mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlUpdate(string sql) { if (mapping.SqlUpdate == null) @@ -268,6 +279,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 +299,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 +319,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 +341,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 2c2fa83f4a3..6bf4aeaede8 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.Text = new[] { sql }; + hbmJoin.sqlinsert.checkSpecified = true; + hbmJoin.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + 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.Text = new[] { sql }; + hbmJoin.sqlupdate.checkSpecified = true; + hbmJoin.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); + } + 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.Text = new[] { sql }; + hbmJoin.sqldelete.checkSpecified = true; + hbmJoin.sqldelete.check = sqlCheck.ToHbmSqlCheck(); + } + 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..40ff5125ec6 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.Text = new[] { sql }; + classMapping.sqlinsert.checkSpecified = true; + classMapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + 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.Text = new[] { sql }; + classMapping.sqlupdate.checkSpecified = true; + classMapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); + } + 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.Text = new[] { sql }; + classMapping.sqldelete.checkSpecified = true; + classMapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); + } + public void Subselect(string sql) { if (classMapping.Subselect == null) diff --git a/src/NHibernate/Mapping/ByCode/Impl/ListMapper.cs b/src/NHibernate/Mapping/ByCode/Impl/ListMapper.cs index 10c2b5d90e7..bf8fd38e94c 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,17 @@ 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.checkSpecified = true; + mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlUpdate(string sql) { if (mapping.SqlUpdate == null) @@ -266,6 +277,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 +297,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 +317,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 +339,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..61eebae6241 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,17 @@ 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.checkSpecified = true; + mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlUpdate(string sql) { if (mapping.SqlUpdate == null) @@ -278,6 +289,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 +309,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 +329,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 +351,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..b6203dd388f 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,17 @@ 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.checkSpecified = true; + mapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + public void SqlUpdate(string sql) { if (mapping.SqlUpdate == null) @@ -263,6 +274,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 +294,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 +314,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 +336,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 fda00098024..fc32a688c3a 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; @@ -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.Text = new[] { sql }; + classMapping.sqlinsert.checkSpecified = true; + classMapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + 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.Text = new[] { sql }; + classMapping.sqlupdate.checkSpecified = true; + classMapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); + } + 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.Text = new[] { sql }; + classMapping.sqldelete.checkSpecified = true; + classMapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); + } + 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..1a3dd96d156 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.Text = new[] { sql }; + classMapping.sqlinsert.checkSpecified = true; + classMapping.sqlinsert.check = sqlCheck.ToHbmSqlCheck(); + } + 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.Text = new[] { sql }; + classMapping.sqlupdate.checkSpecified = true; + classMapping.sqlupdate.check = sqlCheck.ToHbmSqlCheck(); + } + 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.Text = new[] { sql }; + classMapping.sqldelete.checkSpecified = true; + classMapping.sqldelete.check = sqlCheck.ToHbmSqlCheck(); + } + 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..8df23b68de7 --- /dev/null +++ b/src/NHibernate/Mapping/ByCode/SqlCheck.cs @@ -0,0 +1,30 @@ +using System; +using NHibernate.Cfg.MappingSchema; + +namespace NHibernate.Mapping.ByCode +{ + public enum SqlCheck + { + None, + 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); + } + } + } +}