|
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.
|