NHibernate Changelog

What's new in NHibernate 4.0.4

Aug 17, 2015
  • Bug:
  • [NH-3795] - C# compiler "Roslyn" regression

New in NHibernate 4.0.3 (Jan 22, 2015)

  • [NH-2504] - Can't use Cacheable with Group By
  • [NH-3457] - TemplatedViolatedConstraintNameExtracter.ExtractUsingTemplate calls Substring with wrong arguments
  • [NH-3468] - InvalidCastException when deleting entities containing uninitialized lazy components
  • [NH-3573] - Query cache statistics not updated when using MultiCriteria
  • [NH-3731] - Unable to serialize session after modifying the index of entities in a list

New in NHibernate 4.0.2 (Nov 21, 2014)

  • BUG:
  • [NH-2779] - Session.Get() can throw InvalidCastException when log-level is set to DEBUG
  • [NH-2782] - Linq: selecting into a new array doesn't work
  • [NH-2831] - NH cannot load mapping assembly from GAC
  • [NH-3049] - Mapping by code to Field not working
  • [NH-3222] - NHibernate Futures passes empty tuples to ResultSetTransformer
  • [NH-3650] - ComponentAsId used more than once, cache first mapping and produces subsequently a sql select wrong
  • [NH-3709] - Fix Reference to One Shot Delete and Inverse Collections
  • [NH-3710] - Use of SetLockMode with DetachedCriteria causes null reference exception
  • TASK:
  • [NH-3697] - Ignore Firebird in NHSpecificTest.NH1981
  • [NH-3698] - NHSpecificTest.NH1989 fails for some drivers

New in NHibernate 4.0.1 (Sep 22, 2014)

  • Bug:
  • [NH-3102] Wrong mapping produced by Map
  • [NH-3214] PropertyContainerCustomizer.Bag() throws NullReferenceException when mapping a property of type IList
  • [NH-3575] DefaultReadOnly not working for Future() queries
  • [NH-3656] Firebird doesn't accept Currency as parameter type
  • [NH-3667] MappingByCode produce wrong table field name 'idx' in Dictionary mappings
  • [NH-3679] SchemaExport.Create(false, false) does not write to file specified via SchemaExport.SetOutputFile
  • [NH-3691] All dialect checks in NHSpecificTest.NH1487.Fixture are broken
  • [NH-3692] TypedManyToOneTest is broken for Firebird
  • [NH-3694] Criteria or QueryOver with join to components collection does not return data. It worked in NH 3.3.
  • [NH-3695] NHSpecificTest.NH1845 fails for some Dialects
  • [NH-3696] Connection pooling + Multi threraded tests
  • [NH-3701] NHSpecificTest.NH2302 Fails under Firebird
  • Improvement:
  • [NH-3604] Map ByCode fails when property is protected (not public)
  • [NH-3687] Change Id mapping of TimesheetEntry from native to assigned
  • [NH-3688] Modify NHSpecificTest.NH1391 so that it doesn't depend on preknown id values
  • [NH-3690] Add LEFT function to Firebird
  • Patch:
  • [NH-3383] Fix for multiple objects of CascadeStyle in Memory that should be singleton
  • [NH-3577] Fix in SessionFactory.Statistics.LogSummary() method to show 0 milisecond as MaxQueryTime when no query was executed, instead of -922337203685477
  • Task:
  • [NH-3085] Document enhanced id generators
  • [NH-3660] Ignore Firebird in DtcFailuresFixture
  • [NH-3689] Ignore Firebird in NHSpecificTest.NH1171

New in NHibernate 4.0.0 CR 1 (Aug 7, 2014)

  • IDeleteEventListener, IEventSource: Use generic ISet instead of non-generic in method signatures.
  • SqlString.Parts removed. Use SqlString.Count and SqlString.GetEnumerator().
  • IPersistentCollection.GetSnapshot() now returns object instead of ICollection. The snapshot should be opaque to outside code.
  • Removed IsDiscriminatorFormula, DiscriminatorFormula and GenerateSelectString from UnionSubclassEntityPersister class.
  • Removed ManagedWebSessionContext. Any configuration files which use the "managed_web" session context should now use "web"
  • SybaseASADialect removed: Use SybaseSQLAnywhere10Dialect instead.
  • ASA10ClientDriver, ASAClientDriver and SQLiteDriver removed: Use SybaseSQLAnywhereDriver, SybaseAsaClientDriver, SQLite20Driver instead.
  • Removed Classic HQL Parser.
  • Removed IQueryTranslatorFactory2. It's methods were pulled up to IQueryTranslatorFactory. Method CreateQueryTranslators accepting string as first argument marked as Obsolete.
  • IQueryExpression.Translate now has second boolean argument 'filter'
  • Added several methods which accepts IQueryExpression to ISessionImplementor, which is duplicating methods which accepts string.
  • Miss-spelled AdoNetWithDistrubtedTransactionFactory removed: Use AdoNetWithDistributedTransactionFactory instead
  • HqlDistinctHolder removed: Use HqlExpressionSubTreeHolder instead
  • DisableLogFormattedSql method removed: the default is disabled
  • ISession.SaveOrUpdateCopy removed: Use Merge instead
  • Oracle and MySQL: The atan2 and power functions now return double (instead of single) for consistency with other dialects.
  • Removed FirebirdDriver. It was the same as FirebirdClientDriver since 3.2, and the latter have been the default since then.
  • Removed bunch of unused methods on *Helper classes
  • Static fields on NHibernateUtil are declared as their exact class

New in NHibernate 4.0.0 Alpha 2 (Jun 28, 2014)

  • Fixed mapping by code behaviour when map child subclasses (see NH-3135 and NH-3269)
  • The constructor of AbstractComponentTuplizer now behaves like AbstractEntityTuplizer in the way that it doesn't create the instantiator any more. Custom component tuplizers that derive
  • directly from AbstractComponentTuplizer need to add this line of code in their constructor: instantiator = BuildInstantiator(component);
  • Bug:
  • [NH-2380] - Cannot perform distinct when selecting an anonymous type
  • [NH-2486] - Distinct() extension method problem with Object Initialisers
  • [NH-2655] - DbType.Double should be float(53) instead of DOUBLE PRECISION in the SQL-Severer2000 Dialect
  • [NH-2692] - Using Any() on a collection of components results in invalid SQL: Column of parent ID is used instead of key column
  • [NH-2861] - doesn't work in conjunction with
  • [NH-2865] - "Expression type 'NhSumExpression' is not supported by this SelectClauseVisitor."
  • [NH-2961] - "Index was outside the bounds of the array" error when executing cached query for single result with distinct results transformer
  • [NH-3135] - Collection of Components in BaseClass cannot be mapped to a different table
  • [NH-3269] - UniqueKey on property of base class will affect all inherited class
  • [NH-3392] - Add ability to expand subcollections with composites ids with WCF Data Services
  • [NH-3417] - Nested projection of subcollection throws
  • [NH-3423] - MemberInitExpression causing problem in HqlGeneratorExpressionTreeVisitor (WCF DS)
  • [NH-3571] - Linq does not support dynamic components inside components
  • [NH-3579] - Session leak in the Query Plan Cache
  • [NH-3586] - Firebird Decimals
  • [NH-3588] - Creating and dropping of Temporary Tables in an isolated transaction is broken
  • [NH-3590] - Detached entity with set of primitives throws
  • [NH-3591] - IncrementGenerator unnecessarily creates a new connection to the db
  • Improvement:
  • [NH-1082] - Exceptions thrown in IInterceptor.BeforeTransactionCompletion should cause the transaction to be rolled back
  • [NH-3041] - Expression-based PropertyRef missing in OneToOne mapping
  • [NH-3072] - OneToManyPersister improvements
  • [NH-3141] - Don't fetch id from proxy target
  • [NH-3437] - Turn SqlMethods.Like into an extension method
  • Patch:
  • [NH-3558] - Table check and enhanced id generators in Mapping By Code
  • [NH-3559] - UnionSubclassEntityPersister does not quote column names
  • Task:
  • [NH-3363] - Refactor Loader/Result Transformer interaction to match Hibernate

New in NHibernate 4.0.0 Alpha 1 (Oct 21, 2013)

  • Sub-task:
  • [NH-3038] - Add Support for SQL Server 2012 Query Paging
  • [NH-3098] - Pull code/history from nhibernate-core repository to new iesi.collections repository
  • [NH-3099] - Remove Iesi.Collection-related code from nhibernate-core repository
  • [NH-3163] - Remove internal use of non-generic ISet
  • [NH-3165] - Remove support for non-generic ISet in mapped classes
  • Bug:
  • [NH-2008] - Mapping with HashSet generates unecessary update on collection owner
  • [NH-2033] - Composite-Id relationships (key-many-to-one) do not appear to be used in CreateCriteria
  • [NH-2762] - Failed to use IGrouping.Contains() from Lookup to make SQL IN statement
  • [NH-2772] - Lazy-collection not loaded when a property is Lazy-loaded
  • [NH-2819] - DefaultDynamicLazyFieldInterceptor does not handle generic methods correctly
  • [NH-2852] - Linq ThenFetch fails on deep where clause.
  • [NH-2897] - MultiQuery/ToFuture broken with Contains (in)
  • [NH-2915] - In Linq, Where clause is ignored if followed by Fetch and then by OrderBy
  • [NH-2923] - Extra lazy indexed collection throws InvalidCastException fetching Count
  • [NH-2955] - AbstractQueryImpl accepts IEnumerables in SetParameterList but breaks if they're not ICollections
  • [NH-2977] - MsSqlServer dialects reject custom SQL Server queries with limits
  • [NH-2985] - Wrong equals operator when you use mapping when child has property with lazy="true"
  • [NH-3056] - Fetch clause suppresses where clause if positioned before Select clause
  • [NH-3058] - Methods on entities with lazy properties do not trigger load of lazy properties
  • [NH-3070] - Proxy for an entity with a lazy property and a formula property is not .Equal to itself
  • [NH-3132] - Property with access="field.camelcase" not working when another property is lazy
  • [NH-3139] - Optional Entity association using lazy property returns proxy instead of null
  • [NH-3160] - Null reference Exception when creating schema for dialect that doesn't support unique
  • [NH-3183] - Linq ToFuture/ToFutureValue does not fall-back if dialect does not support multi-queries
  • [NH-3186] - Simple query with Fetch and SingleOrDefault throws exception (regression from 3.3.0)
  • [NH-3202] - Offset parameter is off by one for dialects with OffsetStartsAtOne set (SybaseSQLAnywhere10+)
  • [NH-3235] - Query plan cache cannot be set to size zero
  • [NH-3236] - Build menu incorrectly launches NUnit
  • [NH-3244] - Proxying fails for methods with generic class as generic parameter constraints or generic parameter attributes
  • [NH-3256] - GroupBySelectClauseRewriter fails or is suboptimal on .Net 4.0
  • [NH-3260] - Unable to proxy generic methods with constraints referencing type parameters from containing class
  • [NH-3274] - Take() support broken with Informix
  • [NH-3281] - Linq providers are not being passed Limit and/or Offset as value only as parameters
  • [NH-3340] - NHibernate assembly loses the AllowPartiallyTrustedCallers attribute after ILMerge
  • [NH-3381] - atan2 should be defined to return double on Oracle and MySql
  • [NH-3420] - Race Condition in result set wrapper because of the ColumnNameCache
  • Improvement:
  • [NH-2005] - hql concat function not registered in MsSqlCeDialect
  • [NH-2808] - Missing overloads for Session.Save/Update/SaveOrUpdate
  • [NH-3037] - ActionQueue Insertion sort performance degrades exponentially (HHH-2957 Port)
  • [NH-3054] - Mapping By-Code support for non-generic User Collection Types
  • [NH-3133] - Support for importing classes in mapping.
  • [NH-3175] - Joins should support additional restrictions (HQL-with)
  • [NH-3238] - Add Sql2008ClientDriver support in DatabaseSetup for testing
  • [NH-3272] - Move TypeHelperExtensionMethods to a more internal namespace
  • [NH-3319] - Typo in a folder name in NHibernate.Test project
  • [NH-3343] - Remove NHibernate custom Tuple classes
  • [NH-3382] - Improve materialization performance (for simple Linq query, may reduce 50%+ time)
  • [NH-3398] - Support PostgreSQL trigonometric functions
  • [NH-3399] - Static fields on NHibernateUtil should be declared as their exact class
  • [NH-3459] - DefaultIfEmpty not supported when used with a GroupBy
  • [NH-3553] - Support the 'power' function on MS SQL Server
  • New Feature:
  • [NH-3164] - Support building NHibernate on .Net 4
  • [NH-3166] - Support for Microsoft Sql Server 2012
  • [NH-3193] - MsSqlCeDialect should correct override string manipulation functions
  • [NH-3195] - MsSqlCeDialect should support TOP limit
  • [NH-3284] - New Ingres9+ Dialect
  • [NH-3349] - Add support for managed ODP.NET
  • Patch:
  • [NH-2778] - Batcher for MySql
  • [NH-3540] - Null pointer exception for empty BaseDirectory (Path.combine)
  • Task:
  • [NH-2997] - Where() clause with many-to-many relation is missing (solution in description)
  • [NH-3097] - Move Iesi.Collections project to own repository
  • [NH-3185] - Update included Iesi.Collections.dll and add its pdb file
  • [NH-3314] - Remove ManagedWebSessionContext
  • [NH-3322] - Remove one of the Firebird drivers
  • [NH-3339] - Remove SecurityPermission attributes with LinkDemand for .NET 4.0 assemblies
  • [NH-3344] - Remove the classical HQL parser
  • [NH-3345] - Remove support for persistent non-generic collections
  • [NH-3346] - Remove members obsolete in NH3 from NH4
  • [NH-3347] - Remove obsolete dialects for NH4

New in NHibernate 3.3.2 (Oct 26, 2012)

  • Bug:
  • [NH-2463] - Exception in LINQ projection with redundant type cast - block using WCF Data Services projection's
  • [NH-2688] - SelectMany with cast throws QuerySyntaxException
  • [NH-2898] - Retrieving object from 2nd cache with lazy property fails
  • [NH-3050] - Contributed patch as solution to Unable to cast object of type 'NHibernate.Impl.ExpandedQueryExpression' to type 'NHibernate.Linq.NhLinqExpression' at NHibernate.Linq.NhQueryProvider.PrepareQuery
  • [NH-3123] - Nuget package should contain the NHibernate logo
  • [NH-3217] - OrderBy with a parameter then Skip and Take produces sql error
  • [NH-3239] - Linq to NHibernate and Dynamic LINQ - query caching not working
  • [NH-3271] - Threading problem in TypeFactory
  • Improvement:
  • [NH-3296] - Tweak build system to allow keeping a constant assembly version between compatible releases
  • [NH-3297] - NHibernate 3.x NuGet package should forbid Iesi.Collections 4.0 or higher
  • Patch:
  • [NH-3293] - SimpleExpression.ToString() returns hashes for strings and dates

New in NHibernate 3.3.1 (Jun 12, 2012)

  • Sub-task:
  • [NH-3167] - Support for Microsoft Sql Server 2012 sequences
  • [NH-3170] - Add native "iif" function to MsSql2012Dialect
  • Bug:
  • [NH-2789] - LINQ query on byte? simple property fails on MSSQL 2005 (tinyint)
  • [NH-2812] - Performing a Linq query on a non-null byte property throws an InvalidCastException
  • [NH-3121] - Silent truncation of binary data
  • [NH-3124] - invalid cast to int in generated sql with a char property
  • [NH-3125] - Invalid SQL when querying via LINQ with grouping (regression from 3.2)
  • [NH-3126] - InvalidCastException when cascading saves to transient dictionary values
  • [NH-3138] - Distinct Bug on MSSQL with OrderBy/Limit and functions in Projection/Order
  • [NH-3142] - Batch-loading of lazy children failing when key is composite
  • [NH-3145] - HQL query using base class entity with lazy properties throws "No Persister For" error
  • [NH-3147] - Calling Contains on a subquery that contains a join throws an Exception
  • [NH-3153] - Duplicated id generator tables if schema is specified using different methods for different classes.
  • [NH-3162] - Byte.Equals in LINQ Where clauses throws NotSupportedException
  • [NH-3172] - "Duplicate dynamic module name within an assembly"
  • Improvement:
  • [NH-3104] - Typo in Warning Messages
  • [NH-3149] - MsSql2005Dialect should use nowait in LockMode.UPGRADE_NOWAIT
  • [NH-3156] - ShowBuildMenu.bat does not work with spaces in repository folder name
  • [NH-3168] - Add support for bit_length function for MsSql2000Dialect and above
  • [NH-3169] - Add supprot for extract function for MsSql2000Dialect and above

New in NHibernate 3.3.0 CR 1 (Mar 12, 2012)

  • Bug:
  • [NH-1477] - Saving a collection (thats been Cleared) with all-delete-orphan using Oracle with ODP drivers
  • [NH-2214] - Distinct and Row_number problem
  • [NH-2347] - Casts inside aggregate functions are incorrectly applied outside of them
  • [NH-2419] - Linq Provider Problem with group by with an order by clause
  • [NH-2429] - SQL Server Linq Average function on Interger field only returns truncated interger value
  • [NH-2439] - LINQ 'in' query not fully interpreted
  • [NH-2451] - LINQ Issue - joining twice with same table when used in both select and where. Second join is a full select and filtered in where instead of a join .. on
  • [NH-2452] - NH 3.0 Linq provider does not correctly translate standard .Key property when grouping
  • [NH-2492] - Problem with ROW_NUMBER and DISTINCT operator using LINQ
  • [NH-2511] - System.ArgumentException: Object of type 'System.Linq.Expressions.ConstantExpression' cannot be converted to type 'System.Linq.Expressions.LambdaExpression' when passing an expression through a method
  • [NH-2527] - AbstractBatcher reuses disposed IDbCommands which causes an ArgumentOutOfRangeException with OracleDataClientDriver
  • [NH-2560] - NoViableAltException with ordering by projection in GroupBy
  • [NH-2664] - Linq, cannot query dynamic-component
  • [NH-2706] - subselect in LINQ query with Contains clause produces wrong SQL
  • [NH-2722] - Linq Count() does not respect previous calls to Select() or Distinct()
  • [NH-2744] - NewArrayInit Is not Implemented
  • [NH-2763] - queryover fails where referencing enum in VB.NET
  • [NH-2781] - linq's OrderBy by a calculated column doesn't work
  • [NH-2809] - Incorrect specification of VARBINARY(MAX) in MsSql2005Dialect
  • [NH-2828] - Persist uploads not initialized collections on flush
  • [NH-2833] - "where" clause not working after "group by", generates wrong SQL
  • [NH-2846] - Fetch on Count Throws Error
  • [NH-2850] - Unable to use enums in NH 3.2 QueryOver checked comparison
  • [NH-2853] - SetFirstResult and SetMaxResults do not work correctly on Oracle (ODP.NET)
  • [NH-2856] - Retrieval of cached query with Fetch throws exception
  • [NH-2857] - Medium Trust Bug in 3.2
  • [NH-2858] - ToString() on Guid column with SQL Server Dialects
  • [NH-2863] - Criteria API restriction over aggregate function wrapped in NotExpression is wrongly placed in WHERE clause instead of HAVING clause which generates invalid SQL
  • [NH-2869] - Custom extension methods in the select clause are not projected using HQL
  • [NH-2880] - Proxies loose their session reference on session deserialization
  • [NH-2881] - Fix not found key handling on extra lazy one to many maps
  • [NH-2886] - Informix support broken
  • [NH-2889] - QueryOver component with multiple properties results in Sql Error
  • [NH-2891] - Too many parameters removed (Pervasive SQL) - SELECT doesn't work
  • [NH-2893] - NHibernate SQL Parameter on IBM.Data.DB2.iSeries provider
  • [NH-2904] - Wrong query generation with LINQ subquery
  • [NH-2906] - Using the same parameter name for two differently typed where clauses throws an exception
  • [NH-2913] - LINQ query that contains .Any() produces invalid SQL
  • [NH-2917] - Paging error with Skip().Take().
  • [NH-2925] - Improper SQL is generated for Take (pagination) for dialects which have UseMaxForLimit = true (like Oracle)
  • [NH-2927] - Oracle Dialect does not handle the correct resolution for timestamp version columns
  • [NH-2937] - Invalid index 0 for this DB2ParameterCollection with Count=0.
  • [NH-2940] - OracleDialect creates wrong sql using SetFirstResult with criteria queries
  • [NH-2946] - Superfluous join when querying by foreign key given Id with LINQ
  • [NH-2954] - PostgreSQL should SupportsPooledSequences
  • [NH-2959] - Polymorphic queries in MultiQuery, MultiCriteria and Futures cause ArgumentOutOfRangeException
  • [NH-2960] - Query using entity name also returns entities of same type but different entity name
  • [NH-2967] - MySQL Schema Update tool fails with exception
  • [NH-2976] - AbstractPersistentCollection.Remove does not remove item from an uninitialized dictionary
  • [NH-2989] - ComponentAsId does not set Id Property
  • [NH-2998] - Allow to use AsQueryable on child collection
  • [NH-3000] - QuerySyntaxException: Exception of type 'Antlr.Runtime.NoViableAltException' was thrown. when projection contains complex code [regression]
  • [NH-3001] - NHibernate.HibernateException: Query Source could not be identified
  • [NH-3002] - HQL: parser is trying to reuse parent implied join for subquery
  • [NH-3003] - Linq: extra joins
  • [NH-3004] - DriverBase.RemoveUnusedCommandParameters removes all parameters when UseNamedPrefixInSql = true and UseNamedPrefixInParameter = false
  • [NH-3008] - Excess DB parameters created when passing SqlFunctionProjection to LHS of InExpression
  • [NH-3009] - Linq trying to add parameters twice if same predicate is used in query more then once
  • [NH-3016] - Mapping by code does not properly support nested types
  • [NH-3019] - LINQ: Select Key from group by generates wrong SQL
  • [NH-3020] - Firebird and DB2 dialect claims to support sequences, but throws in GetSelectSequenceNextValString(string) (since not overriden)
  • [NH-3026] - Linq order by grouped count before select clause gives wrong sql
  • [NH-3031] - Cannot Sum Property of Type Single
  • [NH-3032] - Group By and Condition Throws Exception
  • [NH-3036] - Wrong SqlType size set for LIKE statement
  • [NH-3044] - Self-joined query with subquery and where - where applied to subquery rather than the external query
  • [NH-3059] - Contains broken when used on a path (Works in previous version)
  • [NH-3063] - Turkish-I problem in ValidateColumn
  • [NH-3064] - Schema validation fails for ODBC
  • [NH-3073] - Equal in Linq-provider is only implemented for string
  • Improvement:
  • [NH-1007] - Add a generator attribute to id
  • [NH-2528] - Throw exception instead of silently truncate string and blob data
  • [NH-2825] - Add property-ref and not-found attributes in mapping by code
  • [NH-2835] - SQL Anywhere dialect/driver improvements
  • [NH-2870] - Simplify Development on NHibernate for Contributors
  • [NH-2875] - Add Foreign Key to one-to-one mapping by code
  • [NH-2883] - DisableLogFormatedSql is not useful
  • [NH-2899] - Support for "in ()" in Linq
  • [NH-2950] - Update optimizers for enhanced id generators (ported from Hibernate)
  • [NH-2953] - Update the SequenceStyleGenerator
  • [NH-2962] - Fix PostgreSQL and Firebird timestamp selection and precision
  • [NH-2974] - Add unsaved-value attribute in mapping by code.
  • [NH-2980] - Port enhanced TableGenerator from Hibernate
  • [NH-3024] - Mapping-by-Code does not allow Unique in Component mapping
  • [NH-3040] - SymbolSource support along with NuGet
  • Patch:
  • [NH-2004] - SequenceStyleGenerator + TableStructure opens multiple transactions.
  • [NH-2545] - Comparing strings in VB throws NotSupportedException
  • [NH-2840] - Improper SQL is generated for Take (pagination) for dialects which have UseMaxForLimit = true (like Oracle)
  • [NH-2864] - Fix for nuget package creation.
  • [NH-2905] - Support for multistep joins in Linq
  • [NH-2914] - Functions for DateTime properties in OracleDialect
  • [NH-2924] - CLONE - Improper SQL is generated for Take (pagination) for dialects which have UseMaxForLimit = true (like Oracle)
  • [NH-2936] - Better Sequence Support for Firebird
  • [NH-2964] - WhereRestrictionOn().IsInG() is a icollection not ienumerable like it should be
  • [NH-2982] - SimpleExpression.ToString() can result in unwanted loading of lazy objects
  • [NH-3010] - Fix for batching/command behaviour in OneToManyPersister
  • [NH-3067] - Linq - substring function does not work
  • Task:
  • [NH-2672] - Upgrade Npgsql lib file to next release after 2.0.11.91.
  • [NH-2752] - Re-enable CriteriaQueryTest.AllowToSetLimitOnSubquries for SQLite

New in NHibernate 3.2.0 CR 1 (Jul 4, 2011)

  • Design time :
  • removed obsolete "use_outer_join" property from nhibernate-configuration.xsd (simply remove it from your xml configuration)
  • Possible Breaking Changes :
  • [NH-2550] - Allow public access to FieldInterceptor Session (IFieldInterceptor changed)
  • [NH-2593] - Form Microsoft SQL Server the default batch-size (adonet.batch_size) is set to 20 where not explicit defined in the session-factory configuration
  • - ICollectionPersister added property to fix [NH-2489]
  • [NH-2605] Refactorize MultiQuery/MultiCriteria implementation to delegate responsibility to IDrive (IDrive changed).
  • Build 3.2.0.Aplha2 (rev5715)
  • Bug:
  • [NH-2540] - Linq generates invalid boolean case statements (was: Linq ignoring configured query-substitutions)
  • [NH-2640] - HQL Having clause is ignored without preceeding group by
  • [NH-2641] - HQL does not throw exception on unexpected trailing tokens
  • [NH-2642] - BatcherDataReaderWrapper.GetValue has a typo
  • [NH-2643] - MSSQL configuration template is still using "use_outer_join"
  • [NH-2652] - SchemaMetadataUpdater does not take Dialect default properties
  • Improvement:
  • [NH-2644] - schemaaction is not supported in joinedsubclass
  • New Feature:
  • [NH-2533] - Support paging in HQL
  • Task
  • [NH-2653] - Remove just added ExpressionTreeVisitor class

New in NHibernate 3.2.0 Alpha 1 (Apr 11, 2011)

  • [NH-2392] ICompositeUserType.NullSafeSet method signature has changed
  • [NH-2199] null values in maps/dictionaries are no longer silently ignored/deleted
  • [NH-1894] SybaseAnywhereDialect has been removed, and replaced with SybaseASA9Dialect. Sybase Adaptive Server Enterprise (ASE) dialects removed.
  • [NH-2251] Signature change for GetLimitString in Dialect
  • [NH-2284] Obsolete members removed
  • [NH-2358] DateTimeOffset type now works as a DateTimeOffset instead a "surrogate" of DateTime

New in NHibernate 3.0.0 CR 1 (Nov 23, 2010)

  • Bug:
  • [NH-2001] - Filter by Null in Linq (hql ast version) doesn't work
  • [NH-2077] - SQL Server Dialect: Nhibernate fails to execute native queries with parameters, separated with ';'
  • [NH-2084] - Future + hql queries + same parameter name leads to "NHibernate.QueryException: The named parameter personId was used in more than one query. Either give unique names to your parameters, or use the multi query SetParameter() methods"
  • [NH-2331] - ICriteria: Correlated query throws "Could not find a matching criteria info provider to", works in 2.1.0 broken in 2.1.2
  • [NH-2352] - Null reference exception in GetDefaultConfigurationFilePath when AppDomain.CurrentDomain.RelativeSearchPath is null
  • [NH-2358] - DateTimeOffsetType doesnt properly convert to-from database; milliseconds are lost.
  • [NH-2364] - Dynamic entities with "full name" result in incorrect queries
  • Improvement:
  • [NH-1108] - Reference Data - Ability to load all rows from a table using an HBM file.
  • [NH-2313] - Better logging when SessionFactory is being built
  • [NH-2355] - Allow composite-id without class on dynamic entity
  • New Feature:
  • [NH-2309] - Add support for Future() with the new Linq provider
  • [NH-2367] - Native support for System.Uri as string
  • Patch:
  • [NH-2073] - Missing QuerySequencesString override in FirebirdDialect
  • [NH-2082] - AdoTransaction sometimes writes to log wrong information about IsolationLevel
  • [NH-2357] - Support for custom boolean functions in the linq provider (as FREETEXT).

New in NHibernate 3.0.0 Alpha 3 (Sep 27, 2010)

  • Bug
  • [NH-1927] - Criteria generates wrong sql when eager fetching one-to-many with filter
  • [NH-1928] - SQL line comments swallow next line
  • [NH-2024] - Max results parameter could not provided to subquery
  • [NH-2061] - Merge operation causes null exception for null components that contain many-to-many relations
  • [NH-2096] - IndexOutOfRangeException reading zero-length binary value from MySQL
  • [NH-2112] - Update executed on the DB during a Session.Merge of an unmodified entity
  • [NH-2138] - Entity name support in custom SQL is broken: sql-query/return/@entity-name attribute is ignored
  • [NH-2147] - default_batch_fetch_size has no effect
  • [NH-2188] - Exception occurs when configuration searches default config file and multiple search path were defined for current AppDomain.
  • [NH-2202] - Unable to use ICriteria with projection property that references a composite key relationship
  • [NH-2258] - Paging params in subquery breaks query execution.
  • [NH-2265] - Any linq query using oracle fails when restricting the number of results returned
  • [NH-2270] - NHibernatethrows MappingException on Linux/Mono 2.7
  • [NH-2279] - PersistentIdentifierBag fails to maintain ID map in many cases
  • [NH-2288] - The drop scripts from SchemaExport in SQL2005 dialect will not work for constraints when using DefaultSchema setting other than dbo
  • [NH-2289] - Linq query fail when using contains from ICollection or IList
  • [NH-2302] - MsSql Dialect, mapping an nvarchar(max) using string(10000) causes string truncation
  • [NH-2303] - Regression bug: hibernate-mapping/subclass element can no longer extend hibernate-mapping/class//subclass element
  • [NH-2322] - Performing updates in OnPostUpdate event causes enumeration error
  • [NH-2339] - After rev 5139 (apply NH-2335) NHibernate does not work under Medium Trust
  • [NH-2343] - NHibernate.Type.GenericBagType.Wrap() incorrectly assumes collection implements IList
  • [NH-2344] - Coalesce expression does not work on linq provider
  • Improvement
  • [NH-626] - Adding XmlDoc to NH types
  • [NH-1618] - Lazy loading for one-to-one association
  • [NH-1894] - New SQL Anywhere NHibernate dialect
  • [NH-2135] - Compatible with Mono
  • [NH-2292] - Set Initialize in AbstractLazyInitializer as virtual
  • [NH-2301] - Castle Bytecode with last released 2.5
  • [NH-2321] - Recommended method for xml intellisense
  • [NH-2340] - Workaround, for some DataProviders, in AbstractCharType for char?
  • New Feature
  • [NH-866] - SQL Server 2005 XML Support
  • [NH-2348] - Support polymorphism with Get and Load
  • Patch
  • [NH-2006] - Additional test to use-many-to-one
  • [NH-2111] - PersistentIdentifierBag has null reference exception when accessing SyncRoot on lazy loaded collection
  • [NH-2278] - PersistentGenericIdentifierBag instantiates wrong list type
  • [NH-2284] - Obsolete members can be removed
  • [NH-2293] - When query has only a "from" throw QuerySyntaxException instead of InvalidCastException
  • [NH-2307] - Fix ByteCode Framework Targets
  • [NH-2332] - Update SybaseAnywhereMetaData.cs to support fetching the reserved words
  • [NH-2335] - ReflectiveHttpContext support for different .NET versions
  • [NH-2336] - Leading and trailing ansi trim emulation functions are reversed
  • [NH-2346] - Dialect.TableTypeString is not used when creating schema.
  • Task
  • [NH-2161] - Breaking change in naming strategy from 2.0 to 2.1
  • [NH-2315] - Spring version does not match antlr version
  • [NH-2338] - Upgrade to Castle.Core 2.5.1

New in NHibernate 2.1.2 GA (May 4, 2010)

  • Bug
  • [NH-2011] - Many-to-many inside a component will not be saved when using SaveOrUpdateCopy or Merge
  • Improvement
  • [NH-2022] - Allow overriding in Query By Example
  • Patch
  • [NH-2007] - SesssionIdLoggingContext patch for big resultsets
  • [NH-2019] - Clarification about the use of for polymorphic queries

New in NHibernate 2.1.0 Beta 1 (Jun 7, 2009)

  • Bug
  • [NH-959] - HQL queries with math operators and aggregates fail
  • [NH-1092] - An Aggregate Count(*) on on an Abstract Base Class (Polymorphic) with UniqueResults returns 1 result per subclass when using the table per subclass approach
  • [NH-1171] - Named parameters in SQL query are not substituted when query contains comments with apostrophes
  • [NH-1182] - Calling session.delete() causes unnecessary update to timestamp before sql:delete
  • [NH-1400] - HQL string literals with dots in are tried loaded as types (classes) and fails
  • [NH-1427] - XML Comments inside tag cause exception
  • [NH-1444] - broken implicit join
  • [NH-1487] - schema generation of unique-key with column involved in multiple unique constraints
  • [NH-1507] - NHibernate misplaces JOIN conditions when WHERE references their columns and others altoghether
  • [NH-1517] - SaveOrUpdateCopy does not call "public LifecycleVeto OnUpdate(ISession s)"
  • [NH-1601] - Problems when accessing lists through property
  • [NH-1617] - Formulas containing a data type incorrectly have that data type aliased with the outer entity alias
  • [NH-1735] - TicksType used as entity version causes exceptions on cache put operation.
  • [NH-1789] - A proxy sometimes doesn't call the overriden Equals() method (mapping interface instead class)
  • [NH-1801] - Cross join with a where clause where lhs and rhs are different types of associations breaks with the new AST Query Translator
  • [NH-1802] - Query Cache does not include filters in QueryKey.ToString
  • [NH-1805] - Does ignore on
  • [NH-1813] - Not understandable exception message
  • Improvement
  • [NH-1814] - Autoregister ReservedWords from MetaData
  • New Feature
  • [NH-188] - Should Table/Column names be quoted automatically?
  • Patch
  • [NH-1044] - IdBag for component not in XSD
  • [NH-1804] - Expiration property of session factory not handled when configured via XML

New in NHibernate 2.1.0 Alpha 3 (May 25, 2009)

  • Bug
  • [NH-1098] - Problem in filters with parameters and associated logging information
  • [NH-1179] - Filter not applied in explicit join
  • [NH-1264] - Eager fetching with Criteria/DetachedCriteria does not seem to be working properly
  • [NH-1307] - Parameter Postion incorrect in the sql query .
  • [NH-1343] - In HQL, when having only one Class for query it fails to work if we forget the Alias.
  • [NH-1388] - Map does not delete keys if value of the key is null
  • [NH-1574] - Stateless Session isn't ignoring untouched proxy properties on update
  • [NH-1725] - When using SELECT NEW (iif(a=0, 2, 1)) From .... Returns error '(' expected after HQL function in SELECT
  • [NH-1727] - Hql parameter problems (Sql2005dialect)
  • [NH-1736] - NHibernate.Util.TypeNameParser doesn't parse correctly generic types
  • [NH-1741] - DetachedNamedQuery is ignoring mapped properties
  • [NH-1742] - Wrong parameters order in IQuery with SetParameterList and Filter. SQL Server 2005 and SQL Server 2000
  • [NH-1744] - Open/Close a session inside a TransactionScope fails.
  • [NH-1751] - DistinctRootEntityResultTransformer assumes source ILists are always ArrayLists
  • [NH-1754] - cast HQLFunction don't cast the result
  • [NH-1756] - Updating newly saved entity with generated version causes StaleObjectStateException (explicit flush before commit)
  • [NH-1764] - TableHiLoGenerator fail in a TransactionScope with MySQL database
  • [NH-1767] - Multiple TransactionScopes inside one Session do not work properly
  • [NH-1770] - Not posible to have system properties in web.config and session-factory properties in external hibernate.cfg.xml
  • [NH-1773] - HQL Queries with projection and join fetching fail with AST query translator
  • [NH-1775] - AST Parser & Bitwise queries
  • [NH-1776] - Query executed twice on session with enabled Filter will cause NullReferenceException
  • [NH-1780] - Section 18.4 - Incorrect method name IsUnsaved()
  • [NH-1788] - Dynamic Update & generated timestamp cause NH to try to update the readonly timestamp column
  • [NH-1792] - Invalid Sql for Paging when Subquery contains Order By clause using MsSql2005Dialect
  • Improvement
  • [NH-514] - Allow expansion of the "on" clause in joins.
  • [NH-1051] - Port AST-based HQL parser / QueryTranslator from H3
  • [NH-1093] - Invalid caching probably shouldn't throw exceptions, but should log warnings.
  • [NH-1516] - HQL doesn't support "update" statements
  • [NH-1553] - SQL Server 2005: Support for wrapping snapshot isolation update conflict SQLException into a NHibernate StaleObjectStateException.
  • [NH-1670] - MutiCriteria and MultiQuery results may be loaded directly into a generic List instead of an ArrayList
  • [NH-1745] - SQL formatters for DLL and all others SQLs
  • [NH-1750] - Mark NHibernate.Util.WeakHashtable [Serializable]
  • [NH-1765] - Add ISessionImplementor property to PreDeleteEvent
  • [NH-1791] - Allow passing params of projections to ICriteria.SetProjectios
  • [NH-1794] - Allow query only properties and associations
  • [NH-1797] - MsSql2005Dialect uses paging query when no offset specified
  • New Feature
  • [NH-322] - case when...then...else...end in select clause
  • [NH-917] - Allow NHibernate to enlist in arbitrary IDbTransaction
  • [NH-1701] - format_sql property of hibernate
  • [NH-1786] - IObjectFactory (implementation responsibility by ByteCode provider) to concentrate all Activator.CreateInstance.
  • Patch
  • [NH-1726] - ISessionFactory.Settings gone - breaking change
  • [NH-1769] - Transaction completion on rollback with TransactionScope can cause ObjectDisposedException
  • [NH-1777] - Removed some duplicated casts
  • [NH-1783] - DateType should store only the date part of a System.DateTime to a column