You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
(248) |
May
(82) |
Jun
(90) |
Jul
(177) |
Aug
(253) |
Sep
(157) |
Oct
(151) |
Nov
(143) |
Dec
(278) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(152) |
Feb
(107) |
Mar
(177) |
Apr
(133) |
May
(259) |
Jun
(81) |
Jul
(119) |
Aug
(306) |
Sep
(416) |
Oct
(240) |
Nov
(329) |
Dec
(206) |
2006 |
Jan
(466) |
Feb
(382) |
Mar
(153) |
Apr
(162) |
May
(133) |
Jun
(21) |
Jul
(18) |
Aug
(37) |
Sep
(97) |
Oct
(114) |
Nov
(110) |
Dec
(28) |
2007 |
Jan
(74) |
Feb
(65) |
Mar
(49) |
Apr
(76) |
May
(43) |
Jun
(15) |
Jul
(68) |
Aug
(55) |
Sep
(63) |
Oct
(59) |
Nov
(70) |
Dec
(66) |
2008 |
Jan
(71) |
Feb
(60) |
Mar
(120) |
Apr
(31) |
May
(48) |
Jun
(81) |
Jul
(107) |
Aug
(51) |
Sep
(80) |
Oct
(83) |
Nov
(83) |
Dec
(79) |
2009 |
Jan
(83) |
Feb
(110) |
Mar
(97) |
Apr
(91) |
May
(291) |
Jun
(250) |
Jul
(197) |
Aug
(58) |
Sep
(54) |
Oct
(122) |
Nov
(68) |
Dec
(34) |
2010 |
Jan
(50) |
Feb
(17) |
Mar
(63) |
Apr
(61) |
May
(84) |
Jun
(81) |
Jul
(138) |
Aug
(144) |
Sep
(78) |
Oct
(26) |
Nov
(30) |
Dec
(61) |
2011 |
Jan
(33) |
Feb
(35) |
Mar
(166) |
Apr
(221) |
May
(109) |
Jun
(76) |
Jul
(27) |
Aug
(37) |
Sep
(1) |
Oct
(4) |
Nov
(2) |
Dec
(1) |
2012 |
Jan
|
Feb
|
Mar
(2) |
Apr
(2) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2013 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(3) |
Oct
(2) |
Nov
|
Dec
(1) |
2014 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Michael D. <mik...@us...> - 2004-07-12 01:32:26
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8462/NHibernate.Test Modified Files: NHibernate.Test-1.1.csproj Added Files: hibernate.cfg.xml Log Message: Added TestFixtures for configuring NHibernate from a seperate xml file. --- NEW FILE: hibernate.cfg.xml --- <?xml version="1.0" encoding="utf-8" ?> <hibernate-configuration > <!--xmlns="urn:nhibernate-configuration-2.0" --> <session-factory name="NHibernate.Test"> <!-- properties --> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.connection_string">Server=localhost;initial catalog=nhibernate;Integrated Security=SSPI</property> <property name="show_sql">false</property> <property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property> <property name="use_outer_join">true</property> <property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property> <!-- mapping files --> <mapping file="../../../NHibernate.DomainModel/ABC.hbm.xml" /> </session-factory> </hibernate-configuration> Index: NHibernate.Test-1.1.csproj =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/NHibernate.Test-1.1.csproj,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** NHibernate.Test-1.1.csproj 29 Jun 2004 04:30:16 -0000 1.27 --- NHibernate.Test-1.1.csproj 12 Jul 2004 01:32:18 -0000 1.28 *************** *** 155,158 **** --- 155,162 ---- /> <File + RelPath = "hibernate.cfg.xml" + BuildAction = "Content" + /> + <File RelPath = "MasterDetailTest.cs" SubType = "Code" *************** *** 223,226 **** --- 227,235 ---- /> <File + RelPath = "CfgTest\ConfigurationFixture.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "DialectTest\DialectFixture.cs" SubType = "Code" |
From: Michael D. <mik...@us...> - 2004-07-12 01:32:26
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/CfgTest In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8462/NHibernate.Test/CfgTest Added Files: ConfigurationFixture.cs Log Message: Added TestFixtures for configuring NHibernate from a seperate xml file. --- NEW FILE: ConfigurationFixture.cs --- using System; using NHibernate.Cfg; using NUnit.Framework; namespace NHibernate.Test.CfgTest { /// <summary> /// Summary description for ConfigurationFixture. /// </summary> [TestFixture] public class ConfigurationFixture { [SetUp] public void SetUp() { System.IO.File.Copy("..\\..\\hibernate.cfg.xml", "hibernate.cfg.xml"); } [TearDown] public void TearDown() { System.IO.File.Delete("hibernate.cfg.xml"); } /// <summary> /// Verify that NHibernate can read the configuration from a hibernate.cfg.xml /// file and that the values override what is in the app.config. /// </summary> [Test] public void ReadCfgXmlFromDefaultFile() { Configuration cfg = new Configuration(); cfg.Configure(); Assert.AreEqual( "true 1, false 0, yes 'Y', no 'N'", cfg.Properties[Cfg.Environment.QuerySubstitutions]); Assert.AreEqual( "Server=localhost;initial catalog=nhibernate;Integrated Security=SSPI", cfg.Properties[Cfg.Environment.ConnectionString]); } } } |
From: Michael D. <mik...@us...> - 2004-07-12 01:31:18
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Impl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8238/Impl Modified Files: SessionFactoryImpl.cs Log Message: Changed method name in PropertiesHelper from GetInt() to GetInt32() Index: SessionFactoryImpl.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Impl/SessionFactoryImpl.cs,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** SessionFactoryImpl.cs 18 Jun 2004 14:14:29 -0000 1.20 --- SessionFactoryImpl.cs 12 Jul 2004 01:31:10 -0000 1.21 *************** *** 135,143 **** // TODO: DESIGNQUESTION: There are other points in the application that have questions about the // statementCache - I just don't see this as being needed yet. ! int cacheSize = PropertiesHelper.GetInt( Cfg.Environment.StatementCacheSize, properties, 0); statementCache = ( cacheSize<1 || connectionProvider.IsStatementCache ) ? null : new PreparedStatementCache(cacheSize); //statementCache = null; ! statementFetchSize = PropertiesHelper.GetInt( Cfg.Environment.StatementFetchSize, properties, -1); if((int)statementFetchSize==-1) statementFetchSize = null; if (statementFetchSize!=null) log.Info("ado result set fetch size: " + statementFetchSize); --- 135,143 ---- // TODO: DESIGNQUESTION: There are other points in the application that have questions about the // statementCache - I just don't see this as being needed yet. ! int cacheSize = PropertiesHelper.GetInt32( Cfg.Environment.StatementCacheSize, properties, 0); statementCache = ( cacheSize<1 || connectionProvider.IsStatementCache ) ? null : new PreparedStatementCache(cacheSize); //statementCache = null; ! statementFetchSize = PropertiesHelper.GetInt32( Cfg.Environment.StatementFetchSize, properties, -1); if((int)statementFetchSize==-1) statementFetchSize = null; if (statementFetchSize!=null) log.Info("ado result set fetch size: " + statementFetchSize); *************** *** 147,151 **** bool usrs = PropertiesHelper.GetBoolean(Cfg.Environment.UseScrollableResultSet, properties); ! int batchSize = PropertiesHelper.GetInt(Cfg.Environment.StatementBatchSize, properties, 0); try --- 147,151 ---- bool usrs = PropertiesHelper.GetBoolean(Cfg.Environment.UseScrollableResultSet, properties); ! int batchSize = PropertiesHelper.GetInt32(Cfg.Environment.StatementBatchSize, properties, 0); try |
From: Michael D. <mik...@us...> - 2004-07-12 01:31:18
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Id In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8238/Id Modified Files: SequenceHiLoGenerator.cs TableHiLoGenerator.cs Log Message: Changed method name in PropertiesHelper from GetInt() to GetInt32() Index: SequenceHiLoGenerator.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Id/SequenceHiLoGenerator.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SequenceHiLoGenerator.cs 28 Mar 2004 06:06:40 -0000 1.4 --- SequenceHiLoGenerator.cs 12 Jul 2004 01:31:09 -0000 1.5 *************** *** 40,44 **** { base.Configure(type, parms, d); ! maxLo = PropertiesHelper.GetInt(MaxLo, parms, 9); lo = maxLo + 1; // so we "clock over" on the first invocation returnClass = type.ReturnedClass; --- 40,44 ---- { base.Configure(type, parms, d); ! maxLo = PropertiesHelper.GetInt32(MaxLo, parms, 9); lo = maxLo + 1; // so we "clock over" on the first invocation returnClass = type.ReturnedClass; Index: TableHiLoGenerator.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Id/TableHiLoGenerator.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TableHiLoGenerator.cs 28 Mar 2004 06:06:40 -0000 1.4 --- TableHiLoGenerator.cs 12 Jul 2004 01:31:10 -0000 1.5 *************** *** 42,46 **** { base.Configure(type, parms, d); ! maxLo = PropertiesHelper.GetInt(MaxLo, parms, short.MaxValue); lo = maxLo + 1; // so we "clock over" on the first invocation returnClass = type.ReturnedClass; --- 42,46 ---- { base.Configure(type, parms, d); ! maxLo = PropertiesHelper.GetInt32(MaxLo, parms, short.MaxValue); lo = maxLo + 1; // so we "clock over" on the first invocation returnClass = type.ReturnedClass; |
From: Michael D. <mik...@us...> - 2004-07-12 01:31:18
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Connection In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8238/Connection Modified Files: ConnectionProvider.cs Log Message: Changed method name in PropertiesHelper from GetInt() to GetInt32() Index: ConnectionProvider.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Connection/ConnectionProvider.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ConnectionProvider.cs 18 Jun 2004 13:59:05 -0000 1.3 --- ConnectionProvider.cs 12 Jul 2004 01:31:09 -0000 1.4 *************** *** 44,48 **** // if the .net DataProvider did not provide their own connection pooling. I don't know of // any instances of this yet. ! poolSize = PropertiesHelper.GetInt(Cfg.Environment.PoolSize, Cfg.Environment.Properties, 0); log.Info("NHibernate connection pool size: " + poolSize); --- 44,48 ---- // if the .net DataProvider did not provide their own connection pooling. I don't know of // any instances of this yet. ! poolSize = PropertiesHelper.GetInt32(Cfg.Environment.PoolSize, Cfg.Environment.Properties, 0); log.Info("NHibernate connection pool size: " + poolSize); |
From: Michael D. <mik...@us...> - 2004-07-12 01:31:17
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8238/Util Modified Files: PropertiesHelper.cs Log Message: Changed method name in PropertiesHelper from GetInt() to GetInt32() Index: PropertiesHelper.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Util/PropertiesHelper.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PropertiesHelper.cs 29 Mar 2004 04:05:34 -0000 1.5 --- PropertiesHelper.cs 12 Jul 2004 01:31:09 -0000 1.6 *************** *** 14,22 **** bool.Parse(properties[property] as string); } ! //TODO: rename this GetInt32 ! public static int GetInt(string property, IDictionary properties, int defaultValue) { string propValue = properties[property] as string; return (propValue==null) ? defaultValue : int.Parse(propValue); } public static string GetString(string property, IDictionary properties, string defaultValue) { string propValue = properties[property] as string; --- 14,23 ---- bool.Parse(properties[property] as string); } ! ! public static int GetInt32(string property, IDictionary properties, int defaultValue) { string propValue = properties[property] as string; return (propValue==null) ? defaultValue : int.Parse(propValue); } + public static string GetString(string property, IDictionary properties, string defaultValue) { string propValue = properties[property] as string; *************** *** 24,38 **** } ! public static IDictionary ToDictionary(string property, string delim, IDictionary properties) { IDictionary map = new Hashtable(); string propValue = (string) properties[ property ]; ! if (propValue!=null) { ! StringTokenizer tokens = new StringTokenizer(propValue, delim); IEnumerator en = tokens.GetEnumerator(); ! while ( en.MoveNext() ) { string key = (string) en.Current; string value = en.MoveNext() ? (string) en.Current : String.Empty; ! map.Add( key, value ); } } --- 25,42 ---- } ! public static IDictionary ToDictionary(string property, string delim, IDictionary properties) ! { IDictionary map = new Hashtable(); string propValue = (string) properties[ property ]; ! if (propValue!=null) ! { ! StringTokenizer tokens = new StringTokenizer(propValue, delim, false); IEnumerator en = tokens.GetEnumerator(); ! while ( en.MoveNext() ) ! { string key = (string) en.Current; string value = en.MoveNext() ? (string) en.Current : String.Empty; ! map[key] = value; } } |
From: Michael D. <mik...@us...> - 2004-07-12 01:30:29
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8027/Util Modified Files: StringHelper.cs Log Message: Added some comments about the diff between the various overloads of StringHelper.Split() Index: StringHelper.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Util/StringHelper.cs,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** StringHelper.cs 23 Jun 2004 21:00:24 -0000 1.13 --- StringHelper.cs 12 Jul 2004 01:30:21 -0000 1.14 *************** *** 65,76 **** /// <param name="list">the string that will be broken into tokens</param> /// <returns></returns> ! public static string[] Split(string separators, string list) { return list.Split(separators.ToCharArray()); } ! public static string[] Split(string separators, string list, bool include) { StringTokenizer tokens = new StringTokenizer(list, separators, include); ArrayList results = new ArrayList(); ! foreach(string token in tokens) { results.Add( token ); } --- 65,90 ---- /// <param name="list">the string that will be broken into tokens</param> /// <returns></returns> ! public static string[] Split(string separators, string list) ! { return list.Split(separators.ToCharArray()); } ! /// <summary> ! /// Splits the String using the StringTokenizer. ! /// </summary> ! /// <param name="separators">separators for the tokens of the list</param> ! /// <param name="list">the string that will be broken into tokens</param> ! /// <param name="include">true to include the seperators in the tokens.</param> ! /// <returns></returns> ! /// <remarks> ! /// This is more powerful than Split because you have the option of including or ! /// not including the seperators in the tokens. ! /// </remarks> ! public static string[] Split(string separators, string list, bool include) ! { StringTokenizer tokens = new StringTokenizer(list, separators, include); ArrayList results = new ArrayList(); ! foreach(string token in tokens) ! { results.Add( token ); } |
From: Michael D. <mik...@us...> - 2004-07-12 01:28:59
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Cfg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7723/Cfg Modified Files: Configuration.cs Environment.cs Log Message: Fixed Configuration so it is possible to configure with out settings in the app.config/web.config http://jira.nhibernate.org:8080/browse/NH-67 Index: Configuration.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Cfg/Configuration.cs,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Configuration.cs 2 Jul 2004 16:58:26 -0000 1.15 --- Configuration.cs 12 Jul 2004 01:28:50 -0000 1.16 *************** *** 645,653 **** string value = node.FirstChild.Value; log.Debug(name + "=" + value); ! properties.Add(name, value); ! if ( !name.StartsWith("hibernate") ) properties.Add("hibernate." + name, value); } } public Configuration Configure() { --- 645,663 ---- string value = node.FirstChild.Value; log.Debug(name + "=" + value); ! properties[name] = value; ! if ( !name.StartsWith("hibernate") ) ! { ! properties["hibernate." + name] = value; ! } } } + /// <summary> + /// Configure NHibernate using the file "hibernate.cfg.xml" + /// </summary> + /// <returns>A Configuration object initialized with the file.</returns> + /// <remarks> + /// Calling Configure() will overwrite the values set in app.config or web.config + /// </remarks> public Configuration Configure() { *************** *** 656,659 **** --- 666,677 ---- } + /// <summary> + /// Configure NHibernate using the file specified. + /// </summary> + /// <param name="resource">The location of the Xml file to use to configure NHibernate.</param> + /// <returns>A Configuration object initialized with the file.</returns> + /// <remarks> + /// Calling Configure(string) will overwrite the values set in app.config or web.config + /// </remarks> public Configuration Configure(string resource) { Index: Environment.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Cfg/Environment.cs,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Environment.cs 11 Jul 2004 21:04:56 -0000 1.13 --- Environment.cs 12 Jul 2004 01:28:50 -0000 1.14 *************** *** 4,11 **** using System.Collections.Specialized; using System.Configuration; - using NHibernate.Util; ! namespace NHibernate.Cfg { /// <summary> /// Provides access to configuration info --- 4,12 ---- using System.Collections.Specialized; using System.Configuration; ! using NHibernate.Util; + namespace NHibernate.Cfg + { /// <summary> /// Provides access to configuration info *************** *** 25,29 **** /// </list> /// </remarks> ! public class Environment { private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(Environment)); --- 26,31 ---- /// </list> /// </remarks> ! public class Environment ! { private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(Environment)); *************** *** 31,35 **** private static IDictionary isolationLevels = new Hashtable(); ! private const string Version = "prealpha3"; public const string ConnectionProvider = "hibernate.connection.provider"; --- 33,37 ---- private static IDictionary isolationLevels = new Hashtable(); ! private const string Version = "prealpha"; public const string ConnectionProvider = "hibernate.connection.provider"; *************** *** 57,70 **** public const string UseScrollableResultSet = "hibernate.jdbc.use_scrollable_resultset"; ! static Environment() { log4net.Config.DOMConfigurator.Configure(); - NameValueCollection props = System.Configuration.ConfigurationSettings.GetConfig("nhibernate") as NameValueCollection; - if (props==null) throw new HibernateException("no nhibernate settings available"); - - foreach(string key in props.Keys) { - properties[key] = props[key]; - } - isolationLevels.Add( System.Data.IsolationLevel.Chaos, "NONE" ); isolationLevels.Add( System.Data.IsolationLevel.ReadUncommitted, "READ_UNCOMMITTED" ); --- 59,66 ---- public const string UseScrollableResultSet = "hibernate.jdbc.use_scrollable_resultset"; ! static Environment() ! { log4net.Config.DOMConfigurator.Configure(); isolationLevels.Add( System.Data.IsolationLevel.Chaos, "NONE" ); isolationLevels.Add( System.Data.IsolationLevel.ReadUncommitted, "READ_UNCOMMITTED" ); *************** *** 72,82 **** isolationLevels.Add( System.Data.IsolationLevel.RepeatableRead, "REPEATABLE_READ" ); isolationLevels.Add( System.Data.IsolationLevel.Serializable, "SERIALIZABLE" ); } ! public static IDictionary Properties { get { return properties; } } ! public static bool UseStreamsForBinary { get { return true; } } --- 68,94 ---- isolationLevels.Add( System.Data.IsolationLevel.RepeatableRead, "REPEATABLE_READ" ); isolationLevels.Add( System.Data.IsolationLevel.Serializable, "SERIALIZABLE" ); + + NameValueCollection props = System.Configuration.ConfigurationSettings.GetConfig("nhibernate") as NameValueCollection; + if (props==null) + { + log.Debug("no hibernate settings in app.config/web.config were found"); + return; + } + + foreach(string key in props.Keys) + { + properties[key] = props[key]; + } + + } ! public static IDictionary Properties ! { get { return properties; } } ! public static bool UseStreamsForBinary ! { get { return true; } } |
From: Michael D. <mik...@us...> - 2004-07-12 01:27:07
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/CfgTest In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7338/CfgTest Log Message: Directory /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/CfgTest added to the repository |
From: Michael D. <mik...@us...> - 2004-07-11 21:07:33
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29909/src/NHibernate.DomainModel Modified Files: ABC.hbm.xml ABCProxy.hbm.xml Container.hbm.xml FooBar.hbm.xml Glarch.hbm.xml Qux.hbm.xml WZ.hbm.xml Log Message: Removed proxy attribute from classes to help with testing. The OuterJoinLoader was running into problems with classes that had a proxy attribute since there is no proxy implementation. Index: Container.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/Container.hbm.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Container.hbm.xml 9 Jul 2004 19:22:11 -0000 1.7 --- Container.hbm.xml 11 Jul 2004 21:07:24 -0000 1.8 *************** *** 14,19 **** <class name="NHibernate.DomainModel.Container, NHibernate.DomainModel" - proxy="NHibernate.DomainModel.Container, NHibernate.DomainModel" > <id name="Id" --- 14,22 ---- <class name="NHibernate.DomainModel.Container, NHibernate.DomainModel" > + <!-- + proxy doesn't work yet + proxy="NHibernate.DomainModel.Container, NHibernate.DomainModel" + --> <id name="Id" *************** *** 158,163 **** <class name="NHibernate.DomainModel.Contained, NHibernate.DomainModel" - proxy="NHibernate.DomainModel.Contained, NHibernate.DomainModel" > <id name="Id" --- 161,169 ---- <class name="NHibernate.DomainModel.Contained, NHibernate.DomainModel" > + <!-- + proxy doesn't work yet + proxy="NHibernate.DomainModel.Contained, NHibernate.DomainModel" + --> <id name="Id" Index: FooBar.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/FooBar.hbm.xml,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** FooBar.hbm.xml 29 Jun 2004 14:26:27 -0000 1.8 --- FooBar.hbm.xml 11 Jul 2004 21:07:24 -0000 1.9 *************** *** 8,16 **** name="NHibernate.DomainModel.Foo, NHibernate.DomainModel" table="`foos`" - proxy="NHibernate.DomainModel.FooProxy, NHibernate.DomainModel" discriminator-value="F" dynamic-update="true" dynamic-insert="true" > <jcs-cache usage="nonstrict-read-write"/> --- 8,19 ---- name="NHibernate.DomainModel.Foo, NHibernate.DomainModel" table="`foos`" discriminator-value="F" dynamic-update="true" dynamic-insert="true" > + <!-- + proxy doesn't work yet + proxy="NHibernate.DomainModel.FooProxy, NHibernate.DomainModel" + --> <jcs-cache usage="nonstrict-read-write"/> *************** *** 147,158 **** <subclass name="NHibernate.DomainModel.Trivial, NHibernate.DomainModel" - proxy="NHibernate.DomainModel.FooProxy, NHibernate.DomainModel" discriminator-value="T" /> <subclass name="NHibernate.DomainModel.Abstract, NHibernate.DomainModel" - proxy="NHibernate.DomainModel.AbstractProxy, NHibernate.DomainModel" discriminator-value="null" > <set name="Abstracts"> <key column="abstract_id"/> --- 150,167 ---- <subclass name="NHibernate.DomainModel.Trivial, NHibernate.DomainModel" discriminator-value="T" /> + <!-- + proxy doesn't work yet + proxy="NHibernate.DomainModel.FooProxy, NHibernate.DomainModel" + --> <subclass name="NHibernate.DomainModel.Abstract, NHibernate.DomainModel" discriminator-value="null" > + <!-- + proxy doesn't work yet + proxy="NHibernate.DomainModel.AbstractProxy, NHibernate.DomainModel" + --> <set name="Abstracts"> <key column="abstract_id"/> *************** *** 162,167 **** <subclass name="NHibernate.DomainModel.Bar, NHibernate.DomainModel" ! proxy="NHibernate.DomainModel.BarProxy, NHibernate.DomainModel" ! discriminator-value="B"> <many-to-one name="Baz"/> <property name="BarString"> --- 171,180 ---- <subclass name="NHibernate.DomainModel.Bar, NHibernate.DomainModel" ! discriminator-value="B" ! > ! <!-- ! proxy doesn't work yet ! proxy="NHibernate.DomainModel.BarProxy, NHibernate.DomainModel" ! --> <many-to-one name="Baz"/> <property name="BarString"> Index: WZ.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/WZ.hbm.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** WZ.hbm.xml 3 Jun 2004 18:01:24 -0000 1.1 --- WZ.hbm.xml 11 Jul 2004 21:07:24 -0000 1.2 *************** *** 22,27 **** name="NHibernate.DomainModel.W, NHibernate.DomainModel" discriminator-value="0" - proxy="NHibernate.DomainModel.Z, NHibernate.DomainModel" > <id name="Id" unsaved-value="0"> --- 22,30 ---- name="NHibernate.DomainModel.W, NHibernate.DomainModel" discriminator-value="0" > + <!-- + proxy doesn't work yet + proxy="NHibernate.DomainModel.Z, NHibernate.DomainModel" + --> <id name="Id" unsaved-value="0"> Index: ABC.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/ABC.hbm.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ABC.hbm.xml 9 Jul 2004 19:22:11 -0000 1.6 --- ABC.hbm.xml 11 Jul 2004 21:07:24 -0000 1.7 *************** *** 58,63 **** name="NHibernate.DomainModel.D, NHibernate.DomainModel" discriminator-value="0" - proxy="NHibernate.DomainModel.D, NHibernate.DomainModel" > <id name="Id" --- 58,66 ---- name="NHibernate.DomainModel.D, NHibernate.DomainModel" discriminator-value="0" > + <!-- + proxy does not work yet + proxy="NHibernate.DomainModel.D, NHibernate.DomainModel" + --> <id name="Id" Index: Qux.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/Qux.hbm.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Qux.hbm.xml 6 Jul 2004 04:32:49 -0000 1.5 --- Qux.hbm.xml 11 Jul 2004 21:07:24 -0000 1.6 *************** *** 4,9 **** name="NHibernate.DomainModel.Qux, NHibernate.DomainModel" table="quux" - proxy="NHibernate.DomainModel.Qux, NHibernate.DomainModel" > <id name="Key" column="qux_key" unsaved-value="0"> <generator class="hilo" /> --- 4,12 ---- name="NHibernate.DomainModel.Qux, NHibernate.DomainModel" table="quux" > + <!-- + proxy doesn't work yet + proxy="NHibernate.DomainModel.Qux, NHibernate.DomainModel" + --> <id name="Key" column="qux_key" unsaved-value="0"> <generator class="hilo" /> Index: ABCProxy.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/ABCProxy.hbm.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ABCProxy.hbm.xml 9 Jul 2004 19:22:11 -0000 1.5 --- ABCProxy.hbm.xml 11 Jul 2004 21:07:24 -0000 1.6 *************** *** 1,6 **** <?xml version="1.0" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0"> ! <class name="NHibernate.DomainModel.A, NHibernate.DomainModel" discriminator-value="0" ! proxy="NHibernate.DomainModel.A, NHibernate.DomainModel"> <id name="Id" unsaved-value="0" type="Int64"> <generator class="native" /> --- 1,9 ---- <?xml version="1.0" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0"> ! <class name="NHibernate.DomainModel.A, NHibernate.DomainModel" discriminator-value="0"> ! <!-- ! proxy doesn't work yet ! proxy="NHibernate.DomainModel.A, NHibernate.DomainModel" ! --> <id name="Id" unsaved-value="0" type="Int64"> <generator class="native" /> *************** *** 8,13 **** <discriminator column="clazz" type="Int32" force="true" not-null="false" /> <property name="Name" /> ! <subclass name="NHibernate.DomainModel.B, NHibernate.DomainModel" discriminator-value="null" ! proxy="NHibernate.DomainModel.B, NHibernate.DomainModel"> <property name="Count" column="count_" type="Int32" /> <map name="Map"> --- 11,19 ---- <discriminator column="clazz" type="Int32" force="true" not-null="false" /> <property name="Name" /> ! <subclass name="NHibernate.DomainModel.B, NHibernate.DomainModel" discriminator-value="null"> ! <!-- ! proxy doesn't work yet ! proxy="NHibernate.DomainModel.B, NHibernate.DomainModel" ! --> <property name="Count" column="count_" type="Int32" /> <map name="Map"> *************** *** 21,32 **** <one-to-one name="D" class="NHibernate.DomainModel.D, NHibernate.DomainModel" /> </subclass> ! <subclass name="NHibernate.DomainModel.C2, NHibernate.DomainModel" discriminator-value="2" ! proxy="NHibernate.DomainModel.C2, NHibernate.DomainModel"> <property name="Address" column="c2" /> </subclass> </subclass> </class> ! <class name="NHibernate.DomainModel.D, NHibernate.DomainModel" discriminator-value="0" ! proxy="NHibernate.DomainModel.D, NHibernate.DomainModel"> <id name="Id" unsaved-value="0" type="Int64"> <generator class="assigned" /> --- 27,44 ---- <one-to-one name="D" class="NHibernate.DomainModel.D, NHibernate.DomainModel" /> </subclass> ! <subclass name="NHibernate.DomainModel.C2, NHibernate.DomainModel" discriminator-value="2"> ! <!-- ! proxy doesn't work yet ! proxy="NHibernate.DomainModel.C2, NHibernate.DomainModel" ! --> <property name="Address" column="c2" /> </subclass> </subclass> </class> ! <class name="NHibernate.DomainModel.D, NHibernate.DomainModel" discriminator-value="0" > ! <!-- ! proxy doesn't work yet ! proxy="NHibernate.DomainModel.D, NHibernate.DomainModel" ! --> <id name="Id" unsaved-value="0" type="Int64"> <generator class="assigned" /> Index: Glarch.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/Glarch.hbm.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Glarch.hbm.xml 30 Jun 2004 18:23:09 -0000 1.5 --- Glarch.hbm.xml 11 Jul 2004 21:07:24 -0000 1.6 *************** *** 4,10 **** name="NHibernate.DomainModel.Glarch, NHibernate.DomainModel" table="`glarchez`" - proxy="NHibernate.DomainModel.GlarchProxy, NHibernate.DomainModel" dynamic-update="true" > <!-- <jcs-cache usage="read-write" /> --> --- 4,13 ---- name="NHibernate.DomainModel.Glarch, NHibernate.DomainModel" table="`glarchez`" dynamic-update="true" > + <!-- + proxy doesn't work yet + proxy="NHibernate.DomainModel.GlarchProxy, NHibernate.DomainModel" + --> <!-- <jcs-cache usage="read-write" /> --> |
From: Michael D. <mik...@us...> - 2004-07-11 21:06:02
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/NHSpecific In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29611/src/NHibernate.DomainModel/NHSpecific Modified Files: Parent.hbm.xml Log Message: Added an outer-join to the Parent.AdultFriends for an easy sql statement to profile. Index: Parent.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/NHSpecific/Parent.hbm.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Parent.hbm.xml 9 Jun 2004 01:04:35 -0000 1.1 --- Parent.hbm.xml 11 Jul 2004 21:05:53 -0000 1.2 *************** *** 9,17 **** <generator class="assigned" /> </id> - <property name="AdultName" type="String" column="adult_name" /> ! <set name="AdultFriends" table="par_frnd" sort="NHibernate.DomainModel.NHSpecific.ParentComparer, NHibernate.DomainModel"> <key column="parent_id" /> ! <many-to-many column="parent_friend_id" class="NHibernate.DomainModel.NHSpecific.Parent, NHibernate.DomainModel" /> </set> --- 9,30 ---- <generator class="assigned" /> </id> ! <property ! name="AdultName" ! type="String" ! column="adult_name" ! /> ! ! <set ! name="AdultFriends" ! table="par_frnd" ! sort="NHibernate.DomainModel.NHSpecific.ParentComparer, NHibernate.DomainModel" ! > <key column="parent_id" /> ! <many-to-many ! column="parent_friend_id" ! class="NHibernate.DomainModel.NHSpecific.Parent, NHibernate.DomainModel" ! outer-join="true" ! /> </set> |
From: Michael D. <mik...@us...> - 2004-07-11 21:05:05
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Cfg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29487/src/NHibernate/Cfg Modified Files: Environment.cs Log Message: Fixed properties.Add() to properties[] because key value might be repeated. Index: Environment.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Cfg/Environment.cs,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Environment.cs 30 Apr 2004 08:20:50 -0000 1.12 --- Environment.cs 11 Jul 2004 21:04:56 -0000 1.13 *************** *** 64,68 **** foreach(string key in props.Keys) { ! properties.Add(key, props[key]); } --- 64,68 ---- foreach(string key in props.Keys) { ! properties[key] = props[key]; } |
From: Michael D. <mik...@us...> - 2004-07-11 21:04:22
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Dialect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29415/src/NHibernate/Dialect Modified Files: Dialect.cs MsSql2000Dialect.cs MySQLDialect.cs Oracle9Dialect.cs PostgreSQLDialect.cs SybaseDialect.cs Log Message: Drivers are now setting the default properties for OuterJoins. This has the potential to have a huge impact on the sql being generated if the Driver by default supports outer joins (ie - MsSql) and the config file does not have a hibernate.use_outer_joins=false set. Index: PostgreSQLDialect.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Dialect/PostgreSQLDialect.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PostgreSQLDialect.cs 19 May 2004 04:14:18 -0000 1.5 --- PostgreSQLDialect.cs 11 Jul 2004 21:04:13 -0000 1.6 *************** *** 29,37 **** Types.NUMERIC, "NUMERIC" ); */ ! ! /* ! getDefaultProperties().setProperty(Environment.OUTER_JOIN, "true"); ! getDefaultProperties().setProperty(Environment.STATEMENT_BATCH_SIZE, DEFAULT_BATCH_SIZE); ! */ } --- 29,35 ---- Types.NUMERIC, "NUMERIC" ); */ ! DefaultProperties[Cfg.Environment.OuterJoin] = "true"; ! DefaultProperties[Cfg.Environment.StatementBatchSize] = DefaultBatchSize; ! } Index: SybaseDialect.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Dialect/SybaseDialect.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** SybaseDialect.cs 19 May 2004 04:14:18 -0000 1.8 --- SybaseDialect.cs 11 Jul 2004 21:04:13 -0000 1.9 *************** *** 31,38 **** */ ! /* ! getDefaultProperties().setProperty(Environment.OUTER_JOIN, "true"); ! getDefaultProperties().setProperty(Environment.STATEMENT_BATCH_SIZE, NO_BATCH); ! */ } --- 31,36 ---- */ ! DefaultProperties[Cfg.Environment.OuterJoin] = "true"; ! DefaultProperties[Cfg.Environment.StatementBatchSize] = NoBatch; } Index: MsSql2000Dialect.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** MsSql2000Dialect.cs 28 Apr 2004 03:46:11 -0000 1.12 --- MsSql2000Dialect.cs 11 Jul 2004 21:04:13 -0000 1.13 *************** *** 15,22 **** public MsSql2000Dialect() : base() { ! /* ! getDefaultProperties().setProperty(Environment.OUTER_JOIN, "true"); ! getDefaultProperties().setProperty(Environment.STATEMENT_BATCH_SIZE, NO_BATCH); ! */ } --- 15,20 ---- public MsSql2000Dialect() : base() { ! DefaultProperties[Cfg.Environment.OuterJoin] = "true"; ! DefaultProperties[Cfg.Environment.StatementBatchSize] = NoBatch; } Index: Oracle9Dialect.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Dialect/Oracle9Dialect.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Oracle9Dialect.cs 19 May 2004 03:39:04 -0000 1.8 --- Oracle9Dialect.cs 11 Jul 2004 21:04:13 -0000 1.9 *************** *** 24,32 **** public Oracle9Dialect() : base() { ! /* TODO: ! getDefaultProperties().setProperty(Environment.USE_STREAMS_FOR_BINARY, "true"); ! getDefaultProperties().setProperty(Environment.STATEMENT_BATCH_SIZE, DEFAULT_BATCH_SIZE); ! getDefaultProperties().setProperty(Environment.OUTER_JOIN, "true"); ! */ // add all the functions from the base into this instance --- 24,30 ---- public Oracle9Dialect() : base() { ! // DefaultProperties[Cfg.Environment.UseStreamsForBinary] = "true"; ! DefaultProperties[Cfg.Environment.StatementBatchSize] = DefaultBatchSize; ! DefaultProperties[Cfg.Environment.OuterJoin] = "true"; // add all the functions from the base into this instance Index: Dialect.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Dialect/Dialect.cs,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** Dialect.cs 25 Jun 2004 20:35:02 -0000 1.32 --- Dialect.cs 11 Jul 2004 21:04:13 -0000 1.33 *************** *** 28,33 **** private static readonly IDictionary aggregateFunctions = new Hashtable(); ! const string DefaultBatchSize = "15"; ! const string NoBatch = "0"; static Dialect() --- 28,33 ---- private static readonly IDictionary aggregateFunctions = new Hashtable(); ! protected const string DefaultBatchSize = "15"; ! protected const string NoBatch = "0"; static Dialect() Index: MySQLDialect.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Dialect/MySQLDialect.cs,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** MySQLDialect.cs 15 Apr 2004 21:07:18 -0000 1.15 --- MySQLDialect.cs 11 Jul 2004 21:04:13 -0000 1.16 *************** *** 15,23 **** public MySQLDialect() : base() { ! ! /* TODO: ! getDefaultProperties().setProperty(Environment.OUTER_JOIN, "true"); ! getDefaultProperties().setProperty(Environment.STATEMENT_BATCH_SIZE, DEFAULT_BATCH_SIZE); ! */ } --- 15,20 ---- public MySQLDialect() : base() { ! DefaultProperties[Cfg.Environment.OuterJoin] = "true"; ! DefaultProperties[Cfg.Environment.StatementBatchSize] = DefaultBatchSize; } |
From: Michael D. <mik...@us...> - 2004-07-11 21:00:19
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Tool/hbm2ddl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28750/src/NHibernate/Tool/hbm2ddl Modified Files: SchemaExport.cs Log Message: Fixed props.Add() to props[] because key value might be repeated. Index: SchemaExport.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaExport.cs,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** SchemaExport.cs 18 Jun 2004 14:00:20 -0000 1.9 --- SchemaExport.cs 11 Jul 2004 21:00:10 -0000 1.10 *************** *** 92,96 **** foreach(DictionaryEntry de in dialect.DefaultProperties) { ! props.Add( de.Key, de.Value ); } --- 92,96 ---- foreach(DictionaryEntry de in dialect.DefaultProperties) { ! props[de.Key] = de.Value ; } *************** *** 99,103 **** foreach(DictionaryEntry de in connectionProperties) { ! props.Add( de.Key, de.Value ); } } --- 99,103 ---- foreach(DictionaryEntry de in connectionProperties) { ! props[de.Key] = de.Value; } } |
From: Michael D. <mik...@us...> - 2004-07-09 19:22:25
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21795 Modified Files: ABC.hbm.xml ABCProxy.hbm.xml Container.hbm.xml INameable.hbm.xml Many.hbm.xml MasterDetail.hbm.xml Multi.hbm.xml One.hbm.xml ParentChild.hbm.xml Simple.hbm.xml Log Message: Fixed unsaved-value mappings for Int32, Int64 ids. Index: Simple.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/Simple.hbm.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Simple.hbm.xml 8 Jun 2004 11:44:47 -0000 1.4 --- Simple.hbm.xml 9 Jul 2004 19:22:11 -0000 1.5 *************** *** 3,7 **** <class name="NHibernate.DomainModel.Simple, NHibernate.DomainModel"> ! <id type="Int64" column="id_"> <generator class="assigned"/> </id> --- 3,7 ---- <class name="NHibernate.DomainModel.Simple, NHibernate.DomainModel"> ! <id type="Int64" column="id_" unsaved-value="0"> <generator class="assigned"/> </id> Index: Container.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/Container.hbm.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Container.hbm.xml 30 Jun 2004 18:23:09 -0000 1.6 --- Container.hbm.xml 9 Jul 2004 19:22:11 -0000 1.7 *************** *** 19,22 **** --- 19,23 ---- name="Id" column="container_id" + unsaved-value="0" > <generator class="native" /> Index: MasterDetail.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/MasterDetail.hbm.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MasterDetail.hbm.xml 3 Jun 2004 18:01:24 -0000 1.1 --- MasterDetail.hbm.xml 9 Jul 2004 19:22:11 -0000 1.2 *************** *** 9,12 **** --- 9,13 ---- column="master_key" type="Int64" + unsaved-value="0" > <generator class="native"/> *************** *** 84,87 **** --- 85,89 ---- column="detail_key" type="Int64" + unsaved-value="0" > <generator class="native"/> Index: ABC.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/ABC.hbm.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ABC.hbm.xml 17 Jun 2004 21:17:13 -0000 1.5 --- ABC.hbm.xml 9 Jul 2004 19:22:11 -0000 1.6 *************** *** 7,13 **** <id name="Id" ! unsaved-value="null" > ! <generator class="native" /> </id> --- 7,14 ---- <id name="Id" ! unsaved-value="0" > ! <generator class="assigned" /> ! <!-- unsaved-value used to be null and generator was increment in h2.0.3 --> </id> *************** *** 61,65 **** <id name="Id" ! unsaved-value="null" > <generator class="assigned" /> --- 62,66 ---- <id name="Id" ! unsaved-value="0" > <generator class="assigned" /> Index: ParentChild.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/ParentChild.hbm.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ParentChild.hbm.xml 9 Jun 2004 01:03:59 -0000 1.1 --- ParentChild.hbm.xml 9 Jul 2004 19:22:11 -0000 1.2 *************** *** 5,9 **** name="NHibernate.DomainModel.Parent, NHibernate.DomainModel" > ! <id name="Id" type="Int64"> <generator class="native"> <!--seqhilo--> --- 5,9 ---- name="NHibernate.DomainModel.Parent, NHibernate.DomainModel" > ! <id name="Id" type="Int64" unsaved-value="0"> <generator class="native"> <!--seqhilo--> *************** *** 23,27 **** name="NHibernate.DomainModel.Child, NHibernate.DomainModel" > ! <id name="Id" type="Int64"> <generator class="assigned"/> </id> --- 23,27 ---- name="NHibernate.DomainModel.Child, NHibernate.DomainModel" > ! <id name="Id" type="Int64" unsaved-value="0"> <generator class="assigned"/> </id> Index: Multi.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/Multi.hbm.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Multi.hbm.xml 9 Jun 2004 01:03:59 -0000 1.3 --- Multi.hbm.xml 9 Jul 2004 19:22:11 -0000 1.4 *************** *** 13,16 **** --- 13,17 ---- type="Int64" column="id_" + unsaved-value="0" > <generator class="native"/> *************** *** 154,157 **** --- 155,159 ---- type="Int64" column="id_" + unsaved-value="0" > <generator class="native"/> Index: One.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/One.hbm.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** One.hbm.xml 3 Jun 2004 18:55:57 -0000 1.3 --- One.hbm.xml 9 Jul 2004 19:22:11 -0000 1.4 *************** *** 8,11 **** --- 8,12 ---- name="Key" column="one_key" + unsaved-value="0" > <generator class="native" /> Index: ABCProxy.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/ABCProxy.hbm.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ABCProxy.hbm.xml 17 Jun 2004 21:17:13 -0000 1.4 --- ABCProxy.hbm.xml 9 Jul 2004 19:22:11 -0000 1.5 *************** *** 3,7 **** <class name="NHibernate.DomainModel.A, NHibernate.DomainModel" discriminator-value="0" proxy="NHibernate.DomainModel.A, NHibernate.DomainModel"> ! <id name="Id" unsaved-value="null" type="Int64"> <generator class="native" /> </id> --- 3,7 ---- <class name="NHibernate.DomainModel.A, NHibernate.DomainModel" discriminator-value="0" proxy="NHibernate.DomainModel.A, NHibernate.DomainModel"> ! <id name="Id" unsaved-value="0" type="Int64"> <generator class="native" /> </id> *************** *** 29,33 **** <class name="NHibernate.DomainModel.D, NHibernate.DomainModel" discriminator-value="0" proxy="NHibernate.DomainModel.D, NHibernate.DomainModel"> ! <id name="Id" unsaved-value="null" type="Int64"> <generator class="assigned" /> </id> --- 29,33 ---- <class name="NHibernate.DomainModel.D, NHibernate.DomainModel" discriminator-value="0" proxy="NHibernate.DomainModel.D, NHibernate.DomainModel"> ! <id name="Id" unsaved-value="0" type="Int64"> <generator class="assigned" /> </id> Index: Many.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/Many.hbm.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Many.hbm.xml 3 Jun 2004 18:55:57 -0000 1.3 --- Many.hbm.xml 9 Jul 2004 19:22:11 -0000 1.4 *************** *** 8,11 **** --- 8,12 ---- name="Key" column="many_key" + unsaved-value="0" > <generator class="native" /> Index: INameable.hbm.xml =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/INameable.hbm.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** INameable.hbm.xml 3 Jun 2004 18:01:24 -0000 1.1 --- INameable.hbm.xml 9 Jul 2004 19:22:11 -0000 1.2 *************** *** 9,12 **** --- 9,13 ---- name="Key" column="key_" + unsaved-value="0" > <generator class="native"/> |
From: Michael D. <mik...@us...> - 2004-07-08 12:50:01
|
Update of /cvsroot/nhibernate/nhibernate In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12497 Modified Files: NHibernateSolution.build releasenotes.txt Log Message: preparing for build 5 Index: NHibernateSolution.build =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/NHibernateSolution.build,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** NHibernateSolution.build 2 Jul 2004 04:14:14 -0000 1.4 --- NHibernateSolution.build 8 Jul 2004 12:49:52 -0000 1.5 *************** *** 9,13 **** <!-- global project settings --> <property name="project.name" value="nhibernate" /> ! <property name="project.version" value="0.0.5000.4" /> <!-- default configuration --> --- 9,13 ---- <!-- global project settings --> <property name="project.name" value="nhibernate" /> ! <property name="project.version" value="0.0.5000.5" /> <!-- default configuration --> Index: releasenotes.txt =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/releasenotes.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** releasenotes.txt 1 Jul 2004 21:06:30 -0000 1.2 --- releasenotes.txt 8 Jul 2004 12:49:52 -0000 1.3 *************** *** 1,2 **** --- 1,13 ---- + PreAlpah Build 5 + ======================== + - Added check in Configuration for 1.1 version of runtime. + - Removed reference in NHibernate.csproj to nunit.framework.dll. + - Fixed update="true" when values different than insert attribute. + - Enumerable with HQL now works with multiple results. + - Fixed NullReferenceException in EvictCollections. + - Fixed bug with lazy loaded sorted collections not loading correctly. + - Fixed problem with cascading deletes causing OutOfMemoryException. + - Implemented more TestFixtures. + PreAlpha Build 4 ======================== |
From: Michael D. <mik...@us...> - 2004-07-08 12:41:45
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11003/src/NHibernate.Test Modified Files: AssemblyInfo.cs Log Message: preparing for build 5 Index: AssemblyInfo.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/AssemblyInfo.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AssemblyInfo.cs 1 Jul 2004 23:11:22 -0000 1.4 --- AssemblyInfo.cs 8 Jul 2004 12:41:35 -0000 1.5 *************** *** 7,11 **** [assembly: AssemblyCompanyAttribute("nhibernate.sf.net")] [assembly: AssemblyProductAttribute("NHibernate.Test")] ! [assembly: AssemblyCopyright("Licensed under LPGL.")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] --- 7,11 ---- [assembly: AssemblyCompanyAttribute("nhibernate.sf.net")] [assembly: AssemblyProductAttribute("NHibernate.Test")] ! [assembly: AssemblyCopyright("Licensed under LGPL.")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] *************** *** 21,27 **** // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: ! [assembly: AssemblyVersionAttribute("0.0.5000.4")] [assembly: AssemblyInformationalVersionAttribute("0.0")] ! [assembly: AssemblyFileVersionAttribute("0.0000.4")] [assembly: AssemblyDelaySignAttribute(false)] \ No newline at end of file --- 21,27 ---- // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: ! [assembly: AssemblyVersionAttribute("0.0.5000.5")] [assembly: AssemblyInformationalVersionAttribute("0.0")] ! [assembly: AssemblyFileVersionAttribute("0.0000.5")] [assembly: AssemblyDelaySignAttribute(false)] \ No newline at end of file |
From: Michael D. <mik...@us...> - 2004-07-08 12:41:45
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11003/src/NHibernate.DomainModel Modified Files: AssemblyInfo.cs Log Message: preparing for build 5 Index: AssemblyInfo.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.DomainModel/AssemblyInfo.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AssemblyInfo.cs 1 Jul 2004 23:11:22 -0000 1.4 --- AssemblyInfo.cs 8 Jul 2004 12:41:35 -0000 1.5 *************** *** 7,11 **** [assembly: AssemblyCompanyAttribute("nhibernate.sf.net")] [assembly: AssemblyProductAttribute("NHibernate.DomainModel")] ! [assembly: AssemblyCopyright("Licensed under LPGL.")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] --- 7,11 ---- [assembly: AssemblyCompanyAttribute("nhibernate.sf.net")] [assembly: AssemblyProductAttribute("NHibernate.DomainModel")] ! [assembly: AssemblyCopyright("Licensed under LGPL.")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] *************** *** 21,27 **** // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: ! [assembly: AssemblyVersionAttribute("0.0.5000.4")] [assembly: AssemblyInformationalVersionAttribute("0.0")] ! [assembly: AssemblyFileVersionAttribute("0.0000.4")] [assembly: AssemblyDelaySignAttribute(false)] --- 21,27 ---- // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: ! [assembly: AssemblyVersionAttribute("0.0.5000.5")] [assembly: AssemblyInformationalVersionAttribute("0.0")] ! [assembly: AssemblyFileVersionAttribute("0.0000.5")] [assembly: AssemblyDelaySignAttribute(false)] |
From: Michael D. <mik...@us...> - 2004-07-08 12:41:45
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11003/src/NHibernate Modified Files: AssemblyInfo.cs Log Message: preparing for build 5 Index: AssemblyInfo.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/AssemblyInfo.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** AssemblyInfo.cs 1 Jul 2004 23:11:22 -0000 1.5 --- AssemblyInfo.cs 8 Jul 2004 12:41:34 -0000 1.6 *************** *** 7,11 **** [assembly: AssemblyCompanyAttribute("nhibernate.sf.net")] [assembly: AssemblyProductAttribute("NHibernate")] ! [assembly: AssemblyCopyright("Licensed under LPGL.")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] --- 7,11 ---- [assembly: AssemblyCompanyAttribute("nhibernate.sf.net")] [assembly: AssemblyProductAttribute("NHibernate")] ! [assembly: AssemblyCopyright("Licensed under LGPL.")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] *************** *** 21,27 **** // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: ! [assembly: AssemblyVersionAttribute("0.0.5000.4")] [assembly: AssemblyInformationalVersionAttribute("0.0")] ! [assembly: AssemblyFileVersionAttribute("0.0000.4")] [assembly: AssemblyDelaySignAttribute(false)] --- 21,27 ---- // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: ! [assembly: AssemblyVersionAttribute("0.0.5000.5")] [assembly: AssemblyInformationalVersionAttribute("0.0")] ! [assembly: AssemblyFileVersionAttribute("0.0000.5")] [assembly: AssemblyDelaySignAttribute(false)] |
From: Michael D. <mik...@us...> - 2004-07-08 00:23:04
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25629/NHibernate.Test Modified Files: FooBarTest.cs Log Message: Implemented more tests. Index: FooBarTest.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/FooBarTest.cs,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** FooBarTest.cs 7 Jul 2004 21:31:07 -0000 1.40 --- FooBarTest.cs 8 Jul 2004 00:22:54 -0000 1.41 *************** *** 1663,1667 **** [Test] - //[Ignore("Test not written yet.")] public void RecursiveLoad() { --- 1663,1666 ---- *************** *** 1699,1706 **** s.Flush(); s.Close(); ! // TODO: resume here ! // s = sessions.OpenSession(); ! // enumer = s.Enumerable("from g in class NHibernate.DomainModel.Glarch order by g.Order asc").GetEnumerator(); ! // while ( } --- 1698,1773 ---- s.Flush(); s.Close(); ! ! s = sessions.OpenSession(); ! enumer = s.Enumerable("from g in class NHibernate.DomainModel.Glarch order by g.Order asc").GetEnumerator(); ! while ( enumer.MoveNext() ) ! { ! GlarchProxy g = (GlarchProxy)enumer.Current; ! Assert.IsNotNull( g, "not null"); ! // no equiv in .net - so ran a delete query ! // iter.remove(); ! } ! ! s.Delete("from NHibernate.DomainModel.Glarch as g"); ! s.Flush(); ! s.Close(); ! ! // same thing bug using polymorphic class (no optimization possible) ! s = sessions.OpenSession(); ! FooProxy flast = new Bar(); ! s.Save(flast); ! for( int i=0; i<5; i++ ) ! { ! FooProxy foo = new Bar(); ! s.Save(foo); ! flast.TheFoo = foo; ! flast = flast.TheFoo; ! flast.String = "foo" + (i+1); ! } ! ! enumer = s.Enumerable("from foo in class NHibernate.DomainModel.Foo").GetEnumerator(); ! while( enumer.MoveNext() ) ! { ! object obj = enumer.Current; ! } ! ! list = s.Find("from foo in class NHibernate.DomainModel.Foo"); ! Assert.AreEqual( 6, list.Count, "recursive find"); ! s.Flush(); ! s.Close(); ! ! s = sessions.OpenSession(); ! list = s.Find("from foo in class NHibernate.DomainModel.Foo"); ! Assert.AreEqual( 6, list.Count, "recursive iter" ); ! enumer = list.GetEnumerator(); ! while( enumer.MoveNext() ) ! { ! Assert.IsTrue( enumer.Current is BarProxy, "polymorphic recursive load" ); ! } ! s.Flush(); ! s.Close(); ! ! s = sessions.OpenSession(); ! enumer = s.Enumerable("from foo in class NHibernate.DomainModel.Foo order by foo.String asc").GetEnumerator(); ! string currentString = String.Empty; ! ! while( enumer.MoveNext() ) ! { ! ! BarProxy bar = (BarProxy)enumer.Current; ! string theString = bar.String; ! Assert.IsNotNull( bar, "not null"); ! if(currentString!=String.Empty) ! { ! Assert.IsTrue( theString.CompareTo(currentString) >= 0 , "not in asc order" ); ! } ! currentString = theString; ! // no equiv in .net - so made a hql delete ! // iter.remove(); ! } ! ! s.Delete("from NHibernate.DomainModel.Foo as foo"); ! s.Flush(); ! s.Close(); } *************** *** 1760,1766 **** [Test] - [Ignore("Test not written yet.")] public void LazyCollections() { } --- 1827,1874 ---- [Test] public void LazyCollections() { + ISession s = sessions.OpenSession(); + Qux q = new Qux(); + s.Save(q); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + q = (Qux)s.Load( typeof(Qux), q.Key ); + s.Flush(); + s.Close(); + + // two exceptions are supposed to occur:") + bool ok = false; + try + { + int i = q.MoreFums.Count; + } + catch (LazyInitializationException lie) + { + System.Diagnostics.Debug.WriteLine("caught expected " + lie.ToString()); + ok = true; + } + Assert.IsTrue( ok, "lazy collection with one-to-many" ); + + ok = false; + try + { + int j = q.Fums.Count; + } + catch (LazyInitializationException lie) + { + System.Diagnostics.Debug.WriteLine("caught expected " + lie.ToString()); + ok = true; + } + + Assert.IsTrue( ok, "lazy collection with many-to-many" ); + + s = sessions.OpenSession(); + q = (Qux)s.Load( typeof(Qux), q.Key ); + s.Delete(q); + s.Flush(); + s.Close(); } |
From: Michael D. <mik...@us...> - 2004-07-07 21:31:16
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7398/NHibernate.Test Modified Files: FooBarTest.cs Log Message: Implemented more tests. Index: FooBarTest.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/FooBarTest.cs,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** FooBarTest.cs 7 Jul 2004 05:17:19 -0000 1.39 --- FooBarTest.cs 7 Jul 2004 21:31:07 -0000 1.40 *************** *** 1549,1567 **** [Test] - [Ignore("Test not written yet.")] public void Versioning() { } [Test] - [Ignore("Test not written yet.")] public void VersionedCollections() { } [Test] ! [Ignore("Test not written yet.")] public void RecursiveLoad() { } --- 1549,1706 ---- [Test] public void Versioning() { + ISession s = sessions.OpenSession(); + GlarchProxy g = new Glarch(); + s.Save(g); + GlarchProxy g2 = new Glarch(); + s.Save(g2); + object gid = s.GetIdentifier(g); + object g2id = s.GetIdentifier(g2); + g.Name = "glarch"; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + g = (GlarchProxy)s.Load( typeof(Glarch), gid ); + s.Lock(g, LockMode.Upgrade); + g2 = (GlarchProxy)s.Load( typeof(Glarch), g2id ); + Assert.AreEqual(1, g.Version, "g's version"); + Assert.AreEqual(1, g.DerivedVersion, "g's derived version"); + Assert.AreEqual(0, g2.Version, "g2's version"); + g.Name = "foo"; + Assert.AreEqual(1, s.Find("from g in class NHibernate.DomainModel.Glarch where g.Version=2").Count, "find by version"); + g.Name = "bar"; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + g = (GlarchProxy)s.Load( typeof(Glarch), gid ); + g2 = (GlarchProxy)s.Load( typeof(Glarch), g2id ); + + Assert.AreEqual(3, g.Version, "g's version"); + Assert.AreEqual(3, g.DerivedVersion, "g's derived version"); + Assert.AreEqual(0, g2.Version, "g2's version"); + + g.Next = null; + g2.Next = g; + s.Delete(g2); + s.Delete(g); + s.Flush(); + s.Close(); } [Test] public void VersionedCollections() { + ISession s = sessions.OpenSession(); + GlarchProxy g = new Glarch(); + s.Save(g); + g.ProxyArray = new GlarchProxy[] {g}; + string gid = (string) s.GetIdentifier(g); + ArrayList list = new ArrayList(); + list.Add("foo"); + g.Strings = list; + // <sets> in h2.0.3 + IDictionary hashset = new Hashtable(); + hashset[g] = new object(); + g.ProxySet = hashset; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + g = (GlarchProxy)s.Load( typeof(Glarch), gid ); + Assert.AreEqual( 1, g.Strings.Count ); + Assert.AreEqual( 1, g.ProxyArray.Length ); + Assert.AreEqual( 1, g.ProxySet.Count ); + Assert.AreEqual( 1, g.Version, "version collection before"); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + g = (GlarchProxy)s.Load( typeof(Glarch), gid ); + Assert.AreEqual( "foo", g.Strings[0] ); + Assert.AreSame( g, g.ProxyArray[0] ); + IEnumerator enumer = g.ProxySet.Keys.GetEnumerator(); + enumer.MoveNext(); + Assert.AreSame( g, enumer.Current ); + Assert.AreEqual(1, g.Version, "versioned collection before"); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + g = (GlarchProxy)s.Load( typeof(Glarch), gid ); + Assert.AreEqual( 1, g.Version, "versioned collection before"); + g.Strings.Add("bar"); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + g = (GlarchProxy)s.Load( typeof(Glarch), gid ); + Assert.AreEqual( 2, g.Version, "versioned collection after" ); + Assert.AreEqual( 2, g.Strings.Count, "versioned collection after" ); + g.ProxyArray = null; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + g = (GlarchProxy)s.Load( typeof(Glarch), gid ); + Assert.AreEqual( 3, g.Version, "versioned collection after" ); + Assert.AreEqual( 0, g.ProxyArray.Length, "version collection after" ); + g.FooComponents = new ArrayList(); + g.ProxyArray = null; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + g = (GlarchProxy)s.Load( typeof(Glarch), gid ); + Assert.AreEqual( 4, g.Version, "versioned collection after"); + s.Delete(g); + s.Flush(); + s.Close(); + } [Test] ! //[Ignore("Test not written yet.")] public void RecursiveLoad() { + // Non polymorphisc class (there is an implementation optimization + // being tested here) - from h2.0.3 - what does that mean? + ISession s = sessions.OpenSession(); + GlarchProxy last = new Glarch(); + s.Save(last); + last.Order = 0; + for( int i=0; i<5; i++ ) + { + GlarchProxy next = new Glarch(); + s.Save(next); + last.Next = next; + last = next; + last.Order = (short)(i+1); + } + + IEnumerator enumer = s.Enumerable("from g in class NHibernate.DomainModel.Glarch").GetEnumerator(); + while( enumer.MoveNext() ) + { + object obj = enumer.Current; + } + + IList list = s.Find("from g in class NHibernate.DomainModel.Glarch"); + Assert.AreEqual( 6, list.Count, "recursive find" ); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + list = s.Find("from g in class NHibernate.DomainModel.Glarch"); + Assert.AreEqual( 6, list.Count, "recursive iter" ); + list = s.Find("from g in class NHibernate.DomainModel.Glarch where g.Next is not null"); + Assert.AreEqual( 5, list.Count, "exclude the null next" ); + s.Flush(); + s.Close(); + // TODO: resume here + // s = sessions.OpenSession(); + // enumer = s.Enumerable("from g in class NHibernate.DomainModel.Glarch order by g.Order asc").GetEnumerator(); + // while ( } |
From: Michael D. <mik...@us...> - 2004-07-07 05:20:42
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Impl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17776/NHibernate/Impl Modified Files: SessionImpl.cs Log Message: Fixed problem with nullifiables field and out of memory exception with cascading deletes and circular references. Index: SessionImpl.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Impl/SessionImpl.cs,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** SessionImpl.cs 6 Jul 2004 04:35:22 -0000 1.32 --- SessionImpl.cs 7 Jul 2004 05:20:28 -0000 1.33 *************** *** 214,218 **** [NonSerialized] private IdentityMap collections; //key=PersistentCollection, value=CollectionEntry ! private IList nullifiables = new ArrayList(); //set of Keys of deleted objects private IInterceptor interceptor; --- 214,218 ---- [NonSerialized] private IdentityMap collections; //key=PersistentCollection, value=CollectionEntry ! private IDictionary nullifiables = new Hashtable(); //set of Keys of deleted objects private IInterceptor interceptor; *************** *** 1108,1111 **** --- 1108,1112 ---- } + return e.Status==Status.Saving || ( earlyInsert ? !e.ExistsInDatabase : nullifiables.Contains( new Key(e.Id, e.Persister) ) *************** *** 1121,1127 **** if (obj==null) throw new NullReferenceException("attempted to delete null"); ! object theObj = UnproxyAndReassociate(obj); ! EntityEntry entry = GetEntry(theObj); IClassPersister persister=null; if (entry==null) --- 1122,1129 ---- if (obj==null) throw new NullReferenceException("attempted to delete null"); ! //object theObj = UnproxyAndReassociate(obj); ! obj = UnproxyAndReassociate(obj); ! EntityEntry entry = GetEntry(obj); IClassPersister persister=null; if (entry==null) *************** *** 1129,1138 **** log.Debug("deleting a transient instance"); ! persister = GetPersister(theObj); ! object id = persister.GetIdentifier(theObj); if (id==null) throw new HibernateException("the transient instance passed to Delete() has a null identifier"); ! object old = GetEntry( new Key(id, persister) ); if (old!=null) --- 1131,1140 ---- log.Debug("deleting a transient instance"); ! persister = GetPersister(obj); ! object id = persister.GetIdentifier(obj); if (id==null) throw new HibernateException("the transient instance passed to Delete() has a null identifier"); ! object old = GetEntity( new Key(id, persister) ); if (old!=null) *************** *** 1144,1156 **** } ! RemoveCollectionsFor(persister, id, theObj); ! AddEntity( new Key(id, persister), theObj); entry = AddEntry( ! theObj, Status.Loaded, ! persister.GetPropertyValues(theObj), id, ! persister.GetVersion(theObj), LockMode.None, true, --- 1146,1158 ---- } ! RemoveCollectionsFor(persister, id, obj); ! AddEntity( new Key(id, persister), obj); entry = AddEntry( ! obj, Status.Loaded, ! persister.GetPropertyValues(obj), id, ! persister.GetVersion(obj), LockMode.None, true, *************** *** 1171,1178 **** --- 1173,1182 ---- if ( !persister.IsMutable ) + { throw new HibernateException( "attempted to delete an object of immutable class: " + MessageHelper.InfoString(persister) ); + } if ( log.IsDebugEnabled ) log.Debug( "deleting " + MessageHelper.InfoString(persister, entry.Id) ); *************** *** 1185,1189 **** { //ie the object came in from Update() ! entry.DeletedState = persister.GetPropertyValues(theObj); } else --- 1189,1193 ---- { //ie the object came in from Update() ! entry.DeletedState = persister.GetPropertyValues(obj); } else *************** *** 1193,1212 **** } ! interceptor.OnDelete(theObj, entry.Id, entry.DeletedState, persister.PropertyNames, propTypes); ! NullifyTransientReferences(entry.DeletedState, propTypes, false, theObj); ! ArrayList oldNullifiables = null; ArrayList oldDeletions = null; if ( persister.HasCascades ) { ! oldNullifiables = new ArrayList(); ! oldNullifiables.AddRange(nullifiables); oldDeletions = (ArrayList) deletions.Clone(); } ! nullifiables.Add( new Key(entry.Id, persister) ); entry.Status = Status.Deleted; // before any callbacks, etc, so subdeletions see that this deletion happend first ! ScheduledDeletion delete = new ScheduledDeletion(entry.Id, version, theObj, persister, this); deletions.Add(delete); // ensures that containing deletions happen before sub-deletions --- 1197,1216 ---- } ! interceptor.OnDelete(obj, entry.Id, entry.DeletedState, persister.PropertyNames, propTypes); ! NullifyTransientReferences(entry.DeletedState, propTypes, false, obj); ! // in h2.0.3 this is a Set ! IDictionary oldNullifiables = null; ArrayList oldDeletions = null; if ( persister.HasCascades ) { ! oldNullifiables = new Hashtable(nullifiables); oldDeletions = (ArrayList) deletions.Clone(); } ! nullifiables[ new Key(entry.Id, persister) ] = new object(); entry.Status = Status.Deleted; // before any callbacks, etc, so subdeletions see that this deletion happend first ! ScheduledDeletion delete = new ScheduledDeletion(entry.Id, version, obj, persister, this); deletions.Add(delete); // ensures that containing deletions happen before sub-deletions *************** *** 1215,1220 **** // after nullify, because we don't want to nullify references to subdeletions // try to do callback + cascade ! if ( persister.ImplementsLifecycle ) { ! if ( ( (ILifecycle)theObj).OnDelete(this) == LifecycleVeto.Veto ) { //rollback deletion RollbackDeletion(entry, delete); --- 1219,1226 ---- // after nullify, because we don't want to nullify references to subdeletions // try to do callback + cascade ! if ( persister.ImplementsLifecycle ) ! { ! if ( ( (ILifecycle)obj).OnDelete(this) == LifecycleVeto.Veto ) ! { //rollback deletion RollbackDeletion(entry, delete); *************** *** 1224,1232 **** //BEGIN YUCKINESS: ! if ( persister.HasCascades ) { ! int start = deletions.Count; ! IList newNullifiables = nullifiables; nullifiables = oldNullifiables; --- 1230,1238 ---- //BEGIN YUCKINESS: ! if ( persister.HasCascades ) ! { int start = deletions.Count; ! IDictionary newNullifiables = nullifiables; nullifiables = oldNullifiables; *************** *** 1235,1246 **** { // cascade-delete to collections "BEFORE" the collection owner is deleted ! Cascades.Cascade(this, persister, theObj, Cascades.CascadingAction.ActionDelete, CascadePoint.CascadeAfterInsertBeforeDelete); } finally { cascading--; ! foreach(object oldNullify in oldNullifiables) { ! newNullifiables.Add(oldNullify); } nullifiables = newNullifiables; --- 1241,1252 ---- { // cascade-delete to collections "BEFORE" the collection owner is deleted ! Cascades.Cascade(this, persister, obj, Cascades.CascadingAction.ActionDelete, CascadePoint.CascadeAfterInsertBeforeDelete); } finally { cascading--; ! foreach(DictionaryEntry oldNullifyDictEntry in oldNullifiables) { ! newNullifiables[oldNullifyDictEntry.Key] = oldNullifyDictEntry.Value; } nullifiables = newNullifiables; *************** *** 1271,1275 **** // cascade-save to many-to-one AFTER the parent was saved ! Cascades.Cascade(this, persister, theObj, Cascades.CascadingAction.ActionDelete, CascadePoint.CascadeBeforeInsertAfterDelete); } catch (Exception e) --- 1277,1281 ---- // cascade-save to many-to-one AFTER the parent was saved ! Cascades.Cascade(this, persister, obj, Cascades.CascadingAction.ActionDelete, CascadePoint.CascadeBeforeInsertAfterDelete); } catch (Exception e) *************** *** 1303,1311 **** { if ( log.IsDebugEnabled ) log.Debug( "collection dereferenced while transient " + MessageHelper.InfoString(role, id) ); ! //TODO: H2.0.3 - add back in when CollectionPersister.HasOrphanDelete is coded ! // if(role.HasOrphanDelete) ! // { ! // throw new HibernateException("You may not dereference a collection with cascade=\"all-delete-orphan\""); ! // } collectionRemovals.Add( new ScheduledCollectionRemove(role, id, false, this) ); } --- 1309,1316 ---- { if ( log.IsDebugEnabled ) log.Debug( "collection dereferenced while transient " + MessageHelper.InfoString(role, id) ); ! if(role.HasOrphanDelete) ! { ! throw new HibernateException("You may not dereference a collection with cascade=\"all-delete-orphan\""); ! } collectionRemovals.Add( new ScheduledCollectionRemove(role, id, false, this) ); } |
From: Michael D. <mik...@us...> - 2004-07-07 05:17:30
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17378/NHibernate.Test Modified Files: FooBarTest.cs Log Message: Implemented more tests. Index: FooBarTest.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/FooBarTest.cs,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** FooBarTest.cs 6 Jul 2004 21:12:49 -0000 1.38 --- FooBarTest.cs 7 Jul 2004 05:17:19 -0000 1.39 *************** *** 1473,1485 **** [Test] - [Ignore("Test not written yet.")] public void PersistentLifecycle() { } [Test] ! [Ignore("Test not written yet.")] public void Iterators() { } --- 1473,1549 ---- [Test] public void PersistentLifecycle() { + ISession s = sessions.OpenSession(); + Qux q = new Qux(); + s.Save(q); + q.Stuff = "foo bar baz qux"; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + q = (Qux)s.Load( typeof(Qux), q.Key ); + Assert.IsTrue( q.Created, "lifecycle create" ); + Assert.IsTrue( q.Loaded, "lifecycle load" ); + Assert.IsNotNull( q.Foo, "lifecycle subobject" ); + s.Delete(q); + Assert.IsTrue( q.Deleted, "lifecyle delete" ); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + Assert.AreEqual(0, s.Find("from foo in class NHibernate.DomainModel.Foo").Count, "subdeletion"); + s.Flush(); + s.Close(); + } [Test] ! //[Ignore("Test not written yet.")] public void Iterators() { + ISession s = sessions.OpenSession(); + for( int i=0; i<10; i++ ) + { + Qux q = new Qux(); + object qid = s.Save(q); + Assert.IsNotNull(q, "q is not null"); + Assert.IsNotNull(qid, "qid is not null"); + } + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + IEnumerator enumer = s.Enumerable("from q in class NHibernate.DomainModel.Qux where q.Stuff is null").GetEnumerator(); + int count = 0; + while( enumer.MoveNext() ) + { + Qux q = (Qux)enumer.Current; + q.Stuff = "foo"; + // can't remove item from IEnumerator in .net + //if (count==0 || count==5) enumer.Remove(); + count++; + } + + Assert.AreEqual(10, count, "found 10 items"); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + + Assert.AreEqual(10, + s.Delete("from q in class NHibernate.DomainModel.Qux where q.Stuff=?", "foo", NHibernate.String), + "delete by query"); + + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + enumer = s.Enumerable("from q in class NHibernate.DomainModel.Qux").GetEnumerator(); + Assert.IsFalse( enumer.MoveNext() , "no items in enumerator" ); + s.Flush(); + s.Close(); + + } |
From: Michael D. <mik...@us...> - 2004-07-06 21:12:58
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1549 Modified Files: FooBarTest.cs Log Message: Implemented more tests. Index: FooBarTest.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/FooBarTest.cs,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** FooBarTest.cs 6 Jul 2004 04:38:15 -0000 1.37 --- FooBarTest.cs 6 Jul 2004 21:12:49 -0000 1.38 *************** *** 1288,1294 **** [Test] - [Ignore("Test not written yet.")] public void CollectionOfSelf() { } --- 1288,1322 ---- [Test] public void CollectionOfSelf() { + ISession s = sessions.OpenSession(); + Bar bar = new Bar(); + s.Save(bar); + // h2.0.3 was a set + bar.Abstracts = new Hashtable(); + bar.Abstracts.Add( bar, new object() ); + Bar bar2 = new Bar(); + bar.Abstracts.Add( bar2, new object() ); + bar.TheFoo = bar; + s.Save(bar2); + s.Flush(); + s.Close(); + + bar.Abstracts = null; + s = sessions.OpenSession(); + s.Load( bar, bar.Key ); + + Assert.AreEqual( 2, bar.Abstracts.Count); + Assert.IsTrue(bar.Abstracts.Contains(bar), "collection contains self"); + Assert.AreSame(bar, bar.TheFoo, "association to self"); + + foreach(object obj in bar.Abstracts.Keys) + { + s.Delete(obj); + } + + s.Flush(); + s.Close(); + } *************** *** 1306,1318 **** [Test] - [Ignore("Test not written yet.")] public void DeleteRecursive() { } [Test] - [Ignore("Test not written yet.")] public void Reachability() { } --- 1334,1473 ---- [Test] public void DeleteRecursive() { + ISession s = sessions.OpenSession(); + Foo x = new Foo(); + Foo y = new Foo(); + x.TheFoo = y; + y.TheFoo = x; + s.Save(x); + s.Save(y); + s.Flush(); + s.Delete(y); + s.Delete(x); + s.Flush(); + s.Close(); } [Test] public void Reachability() { + // first for unkeyed collections + ISession s = sessions.OpenSession(); + Baz baz1 = new Baz(); + s.Save(baz1); + Baz baz2 = new Baz(); + s.Save(baz2); + baz1.IntArray = new int[] {1, 2, 3, 4}; + baz1.FooSet = new Hashtable(); + Foo foo = new Foo(); + s.Save(foo); + baz1.FooSet.Add( foo, new object() ); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + baz2 = (Baz) s.Load( typeof(Baz), baz2.Code ); + baz1 = (Baz) s.Load( typeof(Baz), baz1.Code ); + baz2.FooSet = baz1.FooSet; + baz1.FooSet = null; + baz2.IntArray = baz1.IntArray; + baz1.IntArray = null; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + baz2 = (Baz)s.Load( typeof(Baz), baz2.Code ); + baz1 = (Baz)s.Load( typeof(Baz), baz1.Code ); + Assert.AreEqual(4, baz2.IntArray.Length, "unkeyed reachability - baz2.IntArray"); + Assert.AreEqual(1, baz2.FooSet.Count, "unkeyed reachability - baz2.FooSet"); + Assert.AreEqual(0, baz1.IntArray.Length, "unkeyed reachability - baz1.IntArray"); + Assert.AreEqual(0, baz1.FooSet.Count, "unkeyed reachability - baz1.FooSet"); + + foreach(object obj in baz2.FooSet.Keys) + { + s.Delete( (FooProxy)obj ); + } + + s.Delete(baz1); + s.Delete(baz2); + s.Flush(); + s.Close(); + + // now for collections of collections + s = sessions.OpenSession(); + baz1 = new Baz(); + s.Save(baz1); + baz2 = new Baz(); + s.Save(baz2); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + baz2 = (Baz)s.Load( typeof(Baz), baz2.Code ); + baz1 = (Baz)s.Load( typeof(Baz), baz1.Code ); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + baz2 = (Baz)s.Load( typeof(Baz), baz2.Code ); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + baz2 = (Baz)s.Load( typeof(Baz), baz2.Code ); + baz1 = (Baz)s.Load( typeof(Baz), baz1.Code ); + s.Delete(baz1); + s.Delete(baz2); + s.Flush(); + s.Close(); + + // now for keyed collections + s = sessions.OpenSession(); + baz1 = new Baz(); + s.Save(baz1); + baz2 = new Baz(); + s.Save(baz2); + Foo foo1 = new Foo(); + Foo foo2 = new Foo(); + + s.Save(foo1); + s.Save(foo2); + baz1.FooArray = new Foo[] { foo1, null, foo2 }; + baz1.StringDateMap = new Hashtable(); + baz1.StringDateMap["today"] = DateTime.Today; + baz1.StringDateMap["tomm"] = new DateTime(DateTime.Today.Ticks + (new TimeSpan(1, 0, 0, 0, 0)).Ticks); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + baz2 = (Baz)s.Load( typeof(Baz), baz2.Code ); + baz1 = (Baz)s.Load( typeof(Baz), baz1.Code ); + baz2.FooArray = baz1.FooArray; + baz1.FooArray = null; + baz2.StringDateMap = baz1.StringDateMap; + baz1.StringDateMap = null; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + baz2 = (Baz)s.Load( typeof(Baz), baz2.Code ); + baz1 = (Baz)s.Load( typeof(Baz), baz1.Code ); + Assert.AreEqual( 2, baz2.StringDateMap.Count, "baz2.StringDateMap count - reachability"); + Assert.AreEqual( 3, baz2.FooArray.Length, "baz2.FooArray length - reachability"); + Assert.AreEqual( 0, baz1.StringDateMap.Count, "baz1.StringDateMap count - reachability"); + Assert.AreEqual( 0, baz1.FooArray.Length, "baz1.FooArray length - reachability"); + + Assert.IsNull(baz2.FooArray[1], "null element"); + Assert.IsNotNull(baz2.StringDateMap["today"], "today non-null element"); + Assert.IsNotNull(baz2.StringDateMap["tomm"], "tomm non-null element"); + Assert.IsNull(baz2.StringDateMap["foo"], "foo is null element"); + + s.Delete(baz2.FooArray[0]); + s.Delete(baz2.FooArray[2]); + s.Delete(baz1); + s.Delete(baz2); + s.Flush(); + s.Close(); } |
From: Michael D. <mik...@us...> - 2004-07-06 21:08:36
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Collection In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv462/Collection Modified Files: Map.cs SortedMap.cs Log Message: Fixed bug where a lazy loaded sorted map was deleting the entries because it was not loading properly. Added comments to ctors. Index: Map.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Collection/Map.cs,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Map.cs 3 Jun 2004 13:29:32 -0000 1.9 --- Map.cs 6 Jul 2004 21:08:17 -0000 1.10 *************** *** 39,44 **** --- 39,55 ---- } + /// <summary> + /// Construct an uninitialized Map. + /// </summary> + /// <param name="session">The ISession the Map should be a part of.</param> public Map(ISessionImplementor session) : base(session) { } + /// <summary> + /// Construct an initialized Map from its disassembled state. + /// </summary> + /// <param name="session">The ISession the Map should be a part of.</param> + /// <param name="persister">The CollectionPersister to use to reassemble the Map.</param> + /// <param name="disassembled">The disassembled Map.</param> + /// <param name="owner">The owner object.</param> public Map(ISessionImplementor session, CollectionPersister persister, object disassembled, object owner) : base(session) { BeforeInitialize(persister); *************** *** 50,54 **** } ! public override void BeforeInitialize(CollectionPersister persister) { if(persister.HasOrdering) --- 61,79 ---- } ! /// <summary> ! /// Construct an initialized Map based off the values from the existing IDictionary. ! /// </summary> ! /// <param name="session">The ISession the Map should be a part of.</param> ! /// <param name="map">The IDictionary that contains the initial values.</param> ! public Map(ISessionImplementor session, IDictionary map) : base(session) ! { ! this.map = map; ! initialized = true; ! directlyAccessible = true; ! } ! ! ! public override void BeforeInitialize(CollectionPersister persister) ! { if(persister.HasOrdering) *************** *** 67,76 **** } - public Map(ISessionImplementor session, IDictionary map) : base(session) { - this.map = map; - initialized = true; - directlyAccessible = true; - } - public int Count { get { --- 92,95 ---- Index: SortedMap.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Collection/SortedMap.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SortedMap.cs 27 Apr 2004 15:49:21 -0000 1.2 --- SortedMap.cs 6 Jul 2004 21:08:21 -0000 1.3 *************** *** 24,28 **** protected override object Snapshot(CollectionPersister persister) { ! SortedList clonedMap = new SortedList(comparer, map.Count); foreach(DictionaryEntry de in map) { --- 24,28 ---- protected override object Snapshot(CollectionPersister persister) { ! SortedList clonedMap = new SortedList(comparer); foreach(DictionaryEntry de in map) { *************** *** 39,45 **** } ! public SortedMap(ISessionImplementor session, CollectionPersister persister, IComparer comparer, object disassembled, object owner) : this(session, comparer) { BeforeInitialize(persister); object[] array = (object[])disassembled; --- 39,63 ---- } + /// <summary> + /// Create an Uninitialized SortedMap. + /// </summary> + /// <param name="session">The ISession the Map should be a part of.</param> + public SortedMap(ISessionImplementor session) + : base(session) + { + } ! /// <summary> ! /// Create an Initialized SortedMap from its disassembled state. ! /// </summary> ! /// <param name="session">The ISession the Map should be a part of.</param> ! /// <param name="persister">The CollectionPersister to use to reassemble the Map.</param> ! /// <param name="comparer">The IComparer to perform the sorting.</param> ! /// <param name="disassembled">The disassembled Map.</param> ! /// <param name="owner">The owner object.</param> ! public SortedMap(ISessionImplementor session, CollectionPersister persister, IComparer comparer, object disassembled, object owner) ! : base(session) { + this.comparer = comparer; BeforeInitialize(persister); object[] array = (object[])disassembled; *************** *** 58,66 **** /// <summary> ! /// Constuct a new empty SortedMap that uses a IComparer to perform the sorting. /// </summary> /// <param name="session"></param> /// <param name="comparer">The IComparer to user for Sorting.</param> ! public SortedMap(ISessionImplementor session, IComparer comparer) : base(session, new SortedList(comparer)) { this.comparer = comparer; --- 76,85 ---- /// <summary> ! /// Constuct an uninitialized SortedMap that uses an IComparer to perform the sorting. /// </summary> /// <param name="session"></param> /// <param name="comparer">The IComparer to user for Sorting.</param> ! public SortedMap(ISessionImplementor session, IComparer comparer) ! : base(session) { this.comparer = comparer; *************** *** 68,77 **** /// <summary> ! /// Construct a new SortedMap initialized with the map values. /// </summary> ! /// <param name="session">The Session to be bound to.</param> ! /// <param name="map">The initial values.</param> /// <param name="comparer">The IComparer to use for Sorting.</param> ! public SortedMap(ISessionImplementor session, IDictionary map, IComparer comparer) : base(session, new SortedList(map, comparer)) { this.comparer = comparer; --- 87,97 ---- /// <summary> ! /// Construct an initialized SortedMap based off the values from the existing IDictionary. /// </summary> ! /// <param name="session">The ISession the SortedMap should be a part of.</param> ! /// <param name="map">The IDictionary that contains the initial values.</param> /// <param name="comparer">The IComparer to use for Sorting.</param> ! public SortedMap(ISessionImplementor session, IDictionary map, IComparer comparer) ! : base(session, new SortedList(map, comparer)) { this.comparer = comparer; |