From: <fab...@us...> - 2011-04-13 17:34:42
|
Revision: 5688 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5688&view=rev Author: fabiomaulo Date: 2011-04-13 17:34:36 +0000 (Wed, 13 Apr 2011) Log Message: ----------- Fix NH-2644 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/JoinedSubclassBinder.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/IJoinedSubclassMapper.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/JoinedSubclassBinder.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/JoinedSubclassBinder.cs 2011-04-13 17:28:38 UTC (rev 5687) +++ trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/JoinedSubclassBinder.cs 2011-04-13 17:34:36 UTC (rev 5688) @@ -38,12 +38,7 @@ string schema = joinedSubclassMapping.schema ?? mappings.SchemaName; string catalog = joinedSubclassMapping.catalog ?? mappings.CatalogName; - // TODO: very strange, the schema does not support it - //XmlAttribute actionNode = subnode.Attributes["schema-action"]; - //string action = actionNode == null ? "all" : actionNode.Value; - string action = "all"; - - Table mytable = mappings.AddTable(schema, catalog, GetClassTableName(subclass, joinedSubclassMapping.table), joinedSubclassMapping.Subselect, false, action); + Table mytable = mappings.AddTable(schema, catalog, GetClassTableName(subclass, joinedSubclassMapping.table), joinedSubclassMapping.Subselect, false, joinedSubclassMapping.schemaaction); ((ITableOwner)subclass).Table = mytable; log.InfoFormat("Mapping joined-subclass: {0} -> {1}", subclass.EntityName, subclass.Table.Name); Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IJoinedSubclassMapper.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IJoinedSubclassMapper.cs 2011-04-13 17:28:38 UTC (rev 5687) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IJoinedSubclassMapper.cs 2011-04-13 17:34:36 UTC (rev 5688) @@ -9,6 +9,7 @@ void Schema(string schemaName); void Key(Action<IKeyMapper> keyMapping); void Extends(System.Type baseType); + void SchemaAction(SchemaAction action); } public interface IJoinedSubclassMapper : IJoinedSubclassAttributesMapper, IPropertyContainerMapper {} @@ -19,6 +20,7 @@ void Catalog(string catalogName); void Schema(string schemaName); void Key(Action<IKeyMapper<TEntity>> keyMapping); + void SchemaAction(SchemaAction action); } public interface IJoinedSubclassMapper<TEntity> : IJoinedSubclassAttributesMapper<TEntity>, IPropertyContainerMapper<TEntity> where TEntity : class {} Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs 2011-04-13 17:28:38 UTC (rev 5687) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs 2011-04-13 17:34:36 UTC (rev 5688) @@ -25,6 +25,11 @@ keyMapping(keyMapper); } + public void SchemaAction(SchemaAction action) + { + CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinedSubclassAttributesMapper m) => m.SchemaAction(action)); + } + public void EntityName(string value) { CustomizersHolder.AddCustomizer(typeof (TEntity), (IJoinedSubclassAttributesMapper m) => m.EntityName(value)); Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs 2011-04-13 17:28:38 UTC (rev 5687) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs 2011-04-13 17:34:36 UTC (rev 5688) @@ -171,6 +171,11 @@ classMapping.extends = baseType.GetShortClassName(MapDoc); } + public void SchemaAction(SchemaAction action) + { + classMapping.schemaaction = action.ToSchemaActionString(); + } + #endregion } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |