From: <fab...@us...> - 2009-03-04 16:45:09
|
Revision: 4109 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4109&view=rev Author: fabiomaulo Date: 2009-03-04 16:45:01 +0000 (Wed, 04 Mar 2009) Log Message: ----------- Fix NH-1416 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ClassBinder.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/ trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTag.cs trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTag.hbm.xml trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTagFixture.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ClassBinder.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ClassBinder.cs 2009-03-04 04:39:58 UTC (rev 4108) +++ trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ClassBinder.cs 2009-03-04 16:45:01 UTC (rev 4109) @@ -1075,6 +1075,12 @@ XmlAttribute lengthNode = node.Attributes["length"]; if (lengthNode != null) model.Length = int.Parse(lengthNode.Value); + XmlAttribute scaleNode = node.Attributes["scale"]; + if (scaleNode != null) + model.Scale = int.Parse(scaleNode.Value); + XmlAttribute precNode = node.Attributes["precision"]; + if (precNode != null) + model.Precision = int.Parse(precNode.Value); XmlAttribute nullNode = node.Attributes["not-null"]; model.IsNullable = (nullNode != null) ? !StringHelper.BooleanValue(nullNode.Value) : isNullable; @@ -1087,6 +1093,9 @@ XmlAttribute typeNode = node.Attributes["sql-type"]; model.SqlType = (typeNode == null) ? null : typeNode.Value; + + XmlAttribute defaAttribute = node.Attributes["default"]; + model.DefaultValue = (defaAttribute == null) ? null : defaAttribute.Value; } protected static void BindIndex(XmlAttribute indexAttribute, Table table, Column column) @@ -1292,11 +1301,18 @@ { if (columnSchema.length != null) column.Length = int.Parse(columnSchema.length); + if (columnSchema.scale != null) + column.Scale = int.Parse(columnSchema.scale); + if (columnSchema.precision != null) + column.Precision = int.Parse(columnSchema.precision); column.IsNullable = columnSchema.notnullSpecified ? !columnSchema.notnull : isNullable; column.IsUnique = columnSchema.uniqueSpecified && columnSchema.unique; column.CheckConstraint = columnSchema.check ?? string.Empty; column.SqlType = columnSchema.sqltype; + column.DefaultValue = columnSchema.@default; + if (columnSchema.comment != null) + column.Comment = string.Concat(columnSchema.comment.Text).Trim(); } } } Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-04 04:39:58 UTC (rev 4108) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-04 16:45:01 UTC (rev 4109) @@ -944,6 +944,8 @@ <Compile Include="SqlTest\Custom\CustomStoredProcSupportTest.cs" /> <Compile Include="SqlTest\Custom\MySQL\MySQLTest.cs" /> <Compile Include="SqlTest\Custom\Oracle\OracleCustomSQLFixture.cs" /> + <Compile Include="Tools\hbm2ddl\SchemaExportTests\WithColumnTag.cs" /> + <Compile Include="Tools\hbm2ddl\SchemaExportTests\WithColumnTagFixture.cs" /> <Compile Include="Tools\hbm2ddl\SchemaUpdate\MigrationFixture.cs" /> <Compile Include="Tools\hbm2ddl\SchemaUpdate\Version.cs" /> <Compile Include="SecondLevelCacheTest\AnotherItem.cs" /> @@ -1670,6 +1672,7 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="Tools\hbm2ddl\SchemaExportTests\WithColumnTag.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1691\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1689\Mappings.hbm.xml" /> <EmbeddedResource Include="VersionTest\Db\MsSQL\SimpleVersioned.hbm.xml" /> Property changes on: trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests ___________________________________________________________________ Added: svn:mergeinfo + Added: trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTag.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTag.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTag.cs 2009-03-04 16:45:01 UTC (rev 4109) @@ -0,0 +1,8 @@ +namespace NHibernate.Test.Tools.hbm2ddl.SchemaExportTests +{ + public class WithColumnTag + { + public string WithServerFuction { get; set; } + public int WithSimpleValue { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTag.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTag.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTag.hbm.xml 2009-03-04 16:45:01 UTC (rev 4109) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.Tools.hbm2ddl.SchemaExportTests" + assembly="NHibernate.Test"> + + <class name="WithColumnTag"> + <id type="int"/> + <property name="WithServerFuction"> + <column name="created_by" length="50" default="SYSTEM_USER"/> + </property> + <property name="WithSimpleValue"> + <column name="my_value" default="77"/> + </property> + </class> + +</hibernate-mapping> \ No newline at end of file Property changes on: trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTag.hbm.xml ___________________________________________________________________ Added: svn:mergeinfo + Added: trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTagFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTagFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/WithColumnTagFixture.cs 2009-03-04 16:45:01 UTC (rev 4109) @@ -0,0 +1,30 @@ +using System.IO; +using System.Reflection; +using System.Text; +using NHibernate.Cfg; +using NHibernate.Tool.hbm2ddl; +using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; + +namespace NHibernate.Test.Tools.hbm2ddl.SchemaExportTests +{ + [TestFixture] + public class WithColumnTagFixture + { + [Test] + public void ShouldCreateSchemaWithDefaultClause() + { + var script = new StringBuilder(); + const string mapping = "NHibernate.Test.Tools.hbm2ddl.SchemaExportTests.WithColumnTag.hbm.xml"; + + Configuration cfg = TestConfigurationHelper.GetDefaultConfiguration(); + using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(mapping)) + cfg.AddInputStream(stream); + new SchemaExport(cfg).Execute(s => script.AppendLine(s), false, false, false); + + string wholeScript = script.ToString(); + Assert.That(wholeScript, Text.Contains("default SYSTEM_USER")); + Assert.That(wholeScript, Text.Contains("default 77")); + } + } +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |