Kevin McKelvin

NHibernate 3.1GA Released

12 March 2011

Fabio Maulo’s put up the NHibernate 3.1GA release on www.nhforge.org. So far I’ve upgraded my code with minimal issues. Here are the release notes:

Build 3.1.0.GA (rev5425)
=============================

** Known BREAKING CHANGES from NH3.0.0.GA to NH3.1.0.GA

	##### Design time #####
		* [NH-2481] - Deprecated: ISession.SaveOrUpdateCopy methods - use ISession.Merge methods instead

	##### Run time #####
		* [NH-2481] - An exception will now be thrown when an entity references a transient entity and cascade="merge|all" is not configured on the association

	##### Possible Breaking Changes #####
		* [NH-2461] - Signature change for IQuery.SetParameterList
		* [NH-2556] - NH is too tolerante to incorrect naming when access="field.XXX" is used

** Sub-task
    * [NH-2525] - Wrong parameter used for limit claues in MySQL

** Bug
    * [NH-1985] - NHibernate is allowing deletion of immutable objects
    * [NH-2037] - Reattaching an entity with many-to-one inside a natural-id
    * [NH-2130] - Reporting query containing sum crashes when there are no rows
    * [NH-2179] - String constants are not useable in Linq query projection
    * [NH-2203] - problem with orderby in linq query
    * [NH-2280] - LINQ Query on Composite key creates invalid SQL
    * [NH-2311] - .Any() extension method does not work in most cases
    * [NH-2362] - GroupBy with multiple fields fails with exception
    * [NH-2375] - OfType with a where clause fails with a NotSupportedException
    * [NH-2381] - Fetch clause fails with a NotSupportedException
    * [NH-2386] - Unecessary update / invalid SQL generated when collection updated with a versioned (generated) parent entity
    * [NH-2400] - Linq query fail when using contains from an empty Collection
    * [NH-2407] - Linq provider doesn't support enums in VB.NET
    * [NH-2412] - OrderBy generates an inner join instead a left join
    * [NH-2433] - When using extensions methods with generic parameters the provider uses the first use even if the generic parameter is different.
    * [NH-2441] - Logical bool values are not mapped properly (query execution returns incorrect result with SQLite)
    * [NH-2443] - Error compiling NH with ShowBuildMenu.bat -> Cannot run Tests
    * [NH-2450] - Multi Query in MySQL no longer working in 3.0 (was in 2.1)
    * [NH-2459] - LINQ provider query plan cache issue with use of type check expression .Where(o=>o is SomeType)
    * [NH-2460] - version generator is not working with DateTime2 data type.
    * [NH-2464] - NHibernate DLLs not built with optimization in 'release' mode.
    * [NH-2467] - Futures in 3.0.0.GA go bananas when using PostgreSQL
    * [NH-2470] - PersistentIdentifierBag not creating snapshot correctly for new collections.
    * [NH-2482] - SerializationException when writing object to viewstate
    * [NH-2484] - Regression - Binary Blob SerializationException - MSSQL 2k8 / varbinary(max)
    * [NH-2499] - Case statement does not handle multiple when clauses
    * [NH-2501] - Case statement does not allow a parameter in the first then clause
    * [NH-2503] - HQL subselect with addition fails
    * [NH-2507] - LINQ queries tha compare enumeration values with /checked+ compiler option throw NotSupportedException
    * [NH-2512] - QueryOver with Where clause and Take crashes
    * [NH-2524] - Linq converts enums to integers prematurely
    * [NH-2529] - Linq on Informix using take gives an exception
    * [NH-2536] - Second call to OfType don't change the query
    * [NH-2543] - IQueryOver support is not implemented for IStatelessSession
    * [NH-2549] - Disposing an Stateless Session that has already been closed causes a SessionException
    * [NH-2555] - Linq with Contains doesn't work with read only collections
    * [NH-2556] - NH is too tolerante to incorrect naming when access="field.XXX" is used

** Improvement
    * [NH-1342] - Very slow inserts for large BLOB
    * [NH-2023] - Batch operations - introduce SetBatchSize for IStatelessSession
    * [NH-2098] - Support for transaction isolation levels in stateless sessions.
    * [NH-2211] - Stateless Session Linq Support
    * [NH-2228] - Cascading StaleStateException doesn't show which Entity caused the problem
    * [NH-2425] - Cache the XmlSerializer for HbmMapping class
    * [NH-2449] - Add IStatelessSession.BeginTransaction(IsolationLevel) Method
    * [NH-2454] - Add auto-quote settings to main documentation
    * [NH-2455] - Centralization of proxy check to IProxyFactoryFactory (better support for static proxy)
    * [NH-2457] - Ability to use DetachedCriteria from stateless session
    * [NH-2461] - Allow parameter list as ienumerable and simplify IQuery
    * [NH-2471] - ShowBuildMenu.bat and Windows XP
    * [NH-2481] - Merge can fail when there is a transient entity reachable by multiple paths and at least one path does not cascade on merge
    * [NH-2502] - Fetch/Cacheable Should be Allowed to be Called Anywhere
    * [NH-2508] - Deprecate the ISession.SaveAndUpdateCopy API
    * [NH-2522] - ILMerge Antlr and ReLinq
    * [NH-2537] - Implement camelcase-m-underscore naming strategy
    * [NH-2557] - Improves log message, of CustomType not serializable, by adding additional data

** New Feature
    * [NH-908] - Implement read-only entities
    * [NH-2410] - Port  from Hibernate

** Patch
    * [NH-2153] - Unused parameter in SetCommandTimeout method in DriverBase
    * [NH-2172] - Unrecognised method call in expression when using QueryOver queries in VB.Net
    * [NH-2445] - Add IStatelessSession.IsOpen and IStatelessSession.IsConnected
    * [NH-2473] - EntityName + inheritance doesn't work
    * [NH-2474] - Xsd for  on subclass missing
    * [NH-2478] - Docs for
    * [NH-2513] - SetMaxResults issue with DB2400Dialect

** Task
    * [NH-2506] - Fix first example of ternary association in documentation
    * [NH-2541] - Upgrade ReLinq to 1.13.93

Kevin McKelvin

These are the online musings of Kevin McKelvin. He is the CTO at Resource Guru, and lives in Newcastle upon Tyne, UK.