From: <fab...@us...> - 2009-10-16 20:22:09
|
Revision: 4767 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4767&view=rev Author: fabiomaulo Date: 2009-10-16 20:21:57 +0000 (Fri, 16 Oct 2009) Log Message: ----------- Merge r4766 (re-fix NH-1255) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/nhibernate-mapping.xsd trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/Mappings.hbm.xml Modified: trunk/nhibernate/src/NHibernate/nhibernate-mapping.xsd =================================================================== --- trunk/nhibernate/src/NHibernate/nhibernate-mapping.xsd 2009-10-16 20:18:56 UTC (rev 4766) +++ trunk/nhibernate/src/NHibernate/nhibernate-mapping.xsd 2009-10-16 20:21:57 UTC (rev 4767) @@ -743,6 +743,7 @@ <xs:attribute name="foreign-key" type="xs:string" /> <xs:attribute name="lazy" type="restrictedLaziness"> </xs:attribute> + <xs:attribute name="not-found" default="exception" type="notFoundMode"/> </xs:complexType> </xs:element> <xs:element name="key-property"> Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/Domain.cs 2009-10-16 20:21:57 UTC (rev 4767) @@ -0,0 +1,65 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH1255 +{ + public class Customer + { + public int Id { get; set; } + public string Name { get; set; } + } + + public class CustomerValue + { + public CustomerValueId Id { get; set; } + public decimal Value { get; set; } + } + + public class CustomerValueId : IEquatable<CustomerValueId> + { + private int? requestedHashCode; + public Customer Customer { get; set; } + public int CustomKey { get; set; } + + public bool Equals(CustomerValueId other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + if (ReferenceEquals(this, other)) + { + return true; + } + return Equals(other.Customer, Customer) && other.CustomKey == CustomKey; + } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + if (ReferenceEquals(this, obj)) + { + return true; + } + if (obj.GetType() != typeof (CustomerValueId)) + { + return false; + } + return Equals((CustomerValueId) obj); + } + + public override int GetHashCode() + { + if (!requestedHashCode.HasValue) + { + unchecked + { + requestedHashCode = ((Customer != null ? Customer.GetHashCode() : base.GetHashCode()) * 397) ^ CustomKey; + } + } + return requestedHashCode.Value; + } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/Fixture.cs 2009-10-16 20:21:57 UTC (rev 4767) @@ -0,0 +1,19 @@ +using NHibernate.Cfg; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1255 +{ + [TestFixture] + public class Fixture + { + [Test] + public void CanLoadMappingWithNotNullIgnore() + { + var cfg = new Configuration(); + if (TestConfigurationHelper.hibernateConfigFile != null) + cfg.Configure(TestConfigurationHelper.hibernateConfigFile); + Assert.DoesNotThrow( + () => cfg.AddResource("NHibernate.Test.NHSpecificTest.NH1255.Mappings.hbm.xml", typeof (Customer).Assembly)); + } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1255/Mappings.hbm.xml 2009-10-16 20:21:57 UTC (rev 4767) @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH1255" + default-lazy="false"> + + <class name="Customer"> + <id name="Id"> + <generator class="native" /> + </id> + <property name="Name" /> + </class> + + <class name="CustomerValue" > + <composite-id name="Id" class="CustomerValueId"> + <key-many-to-one class="Customer" name="Customer" not-found="ignore" /> + <key-property name="CustomKey" /> + </composite-id> + <property name="Value" /> + </class> + +</hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-10-16 20:18:56 UTC (rev 4766) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-10-16 20:21:57 UTC (rev 4767) @@ -395,6 +395,8 @@ <Compile Include="NHSpecificTest\ElementsEnums\IntEnumsBagFixture.cs" /> <Compile Include="NHSpecificTest\ElementsEnums\Something.cs" /> <Compile Include="NHSpecificTest\Futures\FutureQueryOverFixture.cs" /> + <Compile Include="NHSpecificTest\NH1255\Domain.cs" /> + <Compile Include="NHSpecificTest\NH1255\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1895\DomainClasses.cs" /> <Compile Include="NHSpecificTest\NH1895\SampleTest.cs" /> <Compile Include="NHSpecificTest\NH1922\Fixture.cs" /> @@ -2042,6 +2044,7 @@ <EmbeddedResource Include="CfgTest\Loquacious\EntityToCache.hbm.xml" /> <EmbeddedResource Include="DriverTest\SqlServerCeEntity.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1255\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1895\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1985\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1990\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |