|
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.
|