From: <ric...@us...> - 2009-10-30 10:55:05
|
Revision: 4807 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4807&view=rev Author: ricbrown Date: 2009-10-30 10:54:56 +0000 (Fri, 30 Oct 2009) Log Message: ----------- Fix NH-2003, not null constraint on identifier column Modified Paths: -------------- branches/2.1.x/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ClassIdBinder.cs branches/2.1.x/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/ branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/Fixture.cs branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/Mappings.hbm.xml branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/Model.cs Modified: branches/2.1.x/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ClassIdBinder.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ClassIdBinder.cs 2009-10-29 14:31:35 UTC (rev 4806) +++ branches/2.1.x/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ClassIdBinder.cs 2009-10-30 10:54:56 UTC (rev 4807) @@ -234,7 +234,7 @@ if (columnSchema.length != null) column.Length = int.Parse(columnSchema.length); - column.IsNullable = columnSchema.notnullSpecified ? columnSchema.notnull : false; + column.IsNullable = columnSchema.notnullSpecified ? !columnSchema.notnull : false; column.IsUnique = columnSchema.uniqueSpecified && columnSchema.unique; column.CheckConstraint = columnSchema.check ?? string.Empty; column.SqlType = columnSchema.sqltype; Added: branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/Fixture.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/Fixture.cs (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/Fixture.cs 2009-10-30 10:54:56 UTC (rev 4807) @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using System.Text; +using NHibernate.Cfg; +using NHibernate.Tool.hbm2ddl; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2003 +{ + [TestFixture] + public class Fixture : BugTestCase + { + [Test] + public void ShouldCreateNotNullIdColumn() + { + StringBuilder script = new StringBuilder(); + + Configuration cfg = TestConfigurationHelper.GetDefaultConfiguration(); + using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(MappingsAssembly + "." + (string)Mappings[0])) + cfg.AddInputStream(stream); + new SchemaExport(cfg).Execute(s => script.AppendLine(s), false, false); + + string wholeScript = script.ToString(); + Assert.That(wholeScript.ToLower(), Text.Contains("not null")); + } + } +} \ No newline at end of file Added: branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/Mappings.hbm.xml =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/Mappings.hbm.xml (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/Mappings.hbm.xml 2009-10-30 10:54:56 UTC (rev 4807) @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH2003" + assembly="NHibernate.Test"> + + <class name="MyClass"> + <id name="Id"> + <column name="IdColumn" not-null="true"/> + <generator class="hilo" /> + </id> + </class> +</hibernate-mapping> + + Added: branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/Model.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/Model.cs (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2003/Model.cs 2009-10-30 10:54:56 UTC (rev 4807) @@ -0,0 +1,10 @@ +using System; +using System.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH2003 +{ + public class MyClass + { + public virtual int Id { get; set; } + } +} Modified: branches/2.1.x/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-10-29 14:31:35 UTC (rev 4806) +++ branches/2.1.x/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-10-30 10:54:56 UTC (rev 4807) @@ -600,6 +600,8 @@ <Compile Include="NHSpecificTest\NH1985\SampleTest.cs" /> <Compile Include="NHSpecificTest\NH1990\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1990\Model.cs" /> + <Compile Include="NHSpecificTest\NH2003\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2003\Model.cs" /> <Compile Include="NHSpecificTest\NH473\Child.cs" /> <Compile Include="NHSpecificTest\NH473\Fixture.cs" /> <Compile Include="NHSpecificTest\NH473\Parent.cs" /> @@ -2013,6 +2015,7 @@ <EmbeddedResource Include="DriverTest\MultiTypeEntity.hbm.xml" /> <EmbeddedResource Include="DriverTest\SqlServerCeEntity.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH2003\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1356\MappingsBag.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1356\MappingsSet.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1785\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |