|
From: <fab...@us...> - 2010-09-23 17:07:27
|
Revision: 5206
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5206&view=rev
Author: fabiomaulo
Date: 2010-09-23 17:07:21 +0000 (Thu, 23 Sep 2010)
Log Message:
-----------
Fix NH-2138
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ResultSetMappingBinder.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2138/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2138/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2138/Mappings.hbm.xml
Modified: trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ResultSetMappingBinder.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ResultSetMappingBinder.cs 2010-09-23 15:51:58 UTC (rev 5205)
+++ trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ResultSetMappingBinder.cs 2010-09-23 17:07:21 UTC (rev 5206)
@@ -98,11 +98,11 @@
if (StringHelper.IsEmpty(alias))
alias = "alias_" + count; // hack/workaround as sqlquery impl depend on having a key.
- string entityName = GetClassName(returnSchema.@class, mappings);
-
- if (entityName == null)
+ if (string.IsNullOrEmpty(returnSchema.@class) && string.IsNullOrEmpty(returnSchema.entityname))
throw new MappingException("<return alias='" + alias + "'> must specify either a class or entity-name");
+ string entityName = returnSchema.entityname ?? GetClassName(returnSchema.@class, mappings);
+
LockMode lockMode = GetLockMode(returnSchema.lockmode);
PersistentClass pc = mappings.GetClass(entityName);
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2138/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2138/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2138/Fixture.cs 2010-09-23 17:07:21 UTC (rev 5206)
@@ -0,0 +1,21 @@
+using NHibernate.Engine.Query.Sql;
+using NUnit.Framework;
+using SharpTestsEx;
+
+namespace NHibernate.Test.NHSpecificTest.NH2138
+{
+ [TestFixture]
+ public class Fixture
+ {
+ [Test]
+ public void AfterAddAppingShouldHaveAResultsetWithEntityName()
+ {
+ var cfg = TestConfigurationHelper.GetDefaultConfiguration();
+ cfg.AddResource("NHibernate.Test.NHSpecificTest.NH2138.Mappings.hbm.xml", GetType().Assembly);
+ cfg.Executing(c => c.BuildMappings()).NotThrows();
+ var sqlQuery = cfg.NamedSQLQueries["AllCoders"];
+ var rootReturn = (NativeSQLQueryRootReturn)sqlQuery.QueryReturns[0];
+ rootReturn.ReturnEntityName.Should().Be("Coder");
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2138/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2138/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2138/Mappings.hbm.xml 2010-09-23 17:07:21 UTC (rev 5206)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
+
+ <class entity-name="Coder" table="persons">
+ <id type="int">
+ <generator class="increment" />
+ </id>
+ <property name="Name" type="string"/>
+ </class>
+
+ <sql-query name="AllCoders">
+ <return entity-name="Coder" alias="c" />
+ SELECT {c.*}
+ FROM persons c
+ </sql-query>
+</hibernate-mapping>
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-09-23 15:51:58 UTC (rev 5205)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-09-23 17:07:21 UTC (rev 5206)
@@ -467,6 +467,7 @@
<Compile Include="NHSpecificTest\NH1836\Fixture.cs" />
<Compile Include="NHSpecificTest\NH2111\A.cs" />
<Compile Include="NHSpecificTest\NH2111\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH2138\Fixture.cs" />
<Compile Include="NHSpecificTest\NH2148\BugFixture.cs" />
<Compile Include="NHSpecificTest\NH2148\Domain.cs" />
<Compile Include="NHSpecificTest\NH2224\Domain.cs" />
@@ -2291,6 +2292,7 @@
<EmbeddedResource Include="CollectionTest\NullableValueTypeElementMapFixture.hbm.xml" />
<EmbeddedResource Include="DriverTest\EntityForMs2008.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH2138\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH2288\AclassWithDefault.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH2288\AclassWithNothing.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH2288\AclassWithSpecific.hbm.xml" />
@@ -2628,7 +2630,6 @@
<EmbeddedResource Include="DynamicEntity\Tuplizer\Customer.hbm.xml" />
</ItemGroup>
<ItemGroup>
- <Folder Include="NHSpecificTest\NH1136" />
<Folder Include="Properties\" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|