|
From: <fab...@us...> - 2008-09-14 13:24:59
|
Revision: 3760
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3760&view=rev
Author: fabiomaulo
Date: 2008-09-14 13:25:09 +0000 (Sun, 14 Sep 2008)
Log Message:
-----------
Merge r3758 (fix NH-1484)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs
trunk/nhibernate/src/NHibernate/Engine/IMapping.cs
trunk/nhibernate/src/NHibernate/Impl/SessionFactoryImpl.cs
trunk/nhibernate/src/NHibernate/Persister/Entity/AbstractPropertyMapping.cs
Modified: trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2008-09-14 13:07:51 UTC (rev 3759)
+++ trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2008-09-14 13:25:09 UTC (rev 3760)
@@ -153,6 +153,11 @@
}
return prop.Type;
}
+
+ public bool HasNonIdentifierPropertyNamedId(string className)
+ {
+ return "id".Equals(GetIdentifierPropertyName(className));
+ }
}
[NonSerialized]
Modified: trunk/nhibernate/src/NHibernate/Engine/IMapping.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Engine/IMapping.cs 2008-09-14 13:07:51 UTC (rev 3759)
+++ trunk/nhibernate/src/NHibernate/Engine/IMapping.cs 2008-09-14 13:25:09 UTC (rev 3760)
@@ -13,5 +13,7 @@
string GetIdentifierPropertyName(string className);
IType GetReferencedPropertyType(string className, string propertyName);
+
+ bool HasNonIdentifierPropertyNamedId(string className);
}
-}
\ No newline at end of file
+}
Modified: trunk/nhibernate/src/NHibernate/Impl/SessionFactoryImpl.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Impl/SessionFactoryImpl.cs 2008-09-14 13:07:51 UTC (rev 3759)
+++ trunk/nhibernate/src/NHibernate/Impl/SessionFactoryImpl.cs 2008-09-14 13:25:09 UTC (rev 3760)
@@ -818,6 +818,11 @@
return GetEntityPersister(className).GetPropertyType(propertyName);
}
+ public bool HasNonIdentifierPropertyNamedId(string className)
+ {
+ return "id".Equals(GetIdentifierPropertyName(className));
+ }
+
public IConnectionProvider ConnectionProvider
{
get { return settings.ConnectionProvider; }
Modified: trunk/nhibernate/src/NHibernate/Persister/Entity/AbstractPropertyMapping.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Persister/Entity/AbstractPropertyMapping.cs 2008-09-14 13:07:51 UTC (rev 3759)
+++ trunk/nhibernate/src/NHibernate/Persister/Entity/AbstractPropertyMapping.cs 2008-09-14 13:25:09 UTC (rev 3760)
@@ -180,17 +180,8 @@
private bool HasNonIdentifierPropertyNamedId(EntityType entityType, IMapping factory)
{
- // TODO : would be great to have a Mapping#hasNonIdentifierPropertyNamedId method
- // I don't believe that Mapping#getReferencedPropertyType accounts for the identifier property; so
- // if it returns for a property named 'id', then we should have a non-id field named id
- try
- {
- return factory.GetReferencedPropertyType(entityType.GetAssociatedEntityName(), EntityPersister.EntityID) != null;
- }
- catch (MappingException)
- {
- return false;
- }
+ // NH: Different implementation (removed done "todo" of H3.2.6)
+ return factory.HasNonIdentifierPropertyNamedId(entityType.GetAssociatedEntityName());
}
protected void InitComponentPropertyPaths(string path, IAbstractComponentType type, string[] columns,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|