@@ -3,6 +3,220 @@ Build 5.2.0
33
44Release notes - NHibernate - Version 5.2.0
55
6+ 142 issues were resolved in this release.
7+
8+ ##### Possible Breaking Changes #####
9+ * Mappings mixing column elements and formula elements were taking into account
10+ only the formula elements. They will now take into account all elements.
11+ * Mappings mixing column elements and/or formula elements with a column attribute
12+ or a formula attribute were silently ignoring the attribute. They will now throw.
13+ * Mappings mixing a column attribute and a formula attribute were silently doing
14+ some best effort logic, either considering this as a two columns mapping, the
15+ second one being the formula (most cases), or only taking into account the
16+ formula (case of the `<element>` mapping). They will now throw.
17+ * NHibernate StringType has gained case-sensitivity and culture parameters.
18+ Previously it was ignoring parameters. This type may change its behavior
19+ for any mapping having defined parameters for this type. See #1833.
20+ * Mapping a dynamic component with a Hashtable property instead of an
21+ IDictionary is no more supported.
22+ * Querying a dynamic entity as a Hashtable instead of an IDictionary is no more
23+ supported.
24+ * With PostgreSQL, a HQL query using the bitwise xor operator "^" or "bxor"
25+ was exponentiating the arguments instead. It will now correctly apply the xor
26+ operator. (# operator in PostgreSQL SQL.)
27+ * Auto-generated constraint names will not be the same than the ones generated
28+ with previous NHibernate versions under .Net Framework. (Under .Net Core those
29+ names were anyway changing at each run.) The new ones will be the same
30+ whatever the runtime used for generating them.
31+ * Some generated PK names may change, if a table name has a quoting symbol at
32+ precise 13th character.
33+ * The WcfOperationSessionContext has been removed from .Net Core and .Net
34+ Standard builds. See #1842.
35+ * Some types cache representations have changed. Out-of-process second level
36+ caches should be cleared after upgrading NHibernate, if some of those types
37+ were cached. The concerned types are: CultureInfoType, TypeType, UriType,
38+ XDocType, XmlDocType.
39+ * Dialect.GetIdentitySelectString was called by the entity persisters with
40+ inverted parameter values: the table name in the column parameter, and the
41+ column name in the table parameter. No built-in dialects were using the
42+ parameter values. External dialects which were using it inverted (causing issues
43+ to collection persisters, which have always supplied them correctly) needs
44+ to be accordingly adjusted.
45+ * Users providing through an IObjectFactory some custom logic for instantiating
46+ value types will now need to supply their own result transformer if they were
47+ using AliasToBeanResultTransformer with value types, or their own entity
48+ tuplizer if they were using value types as entities.
49+ * Users providing through an IObjectFactory some custom logic for instantiating
50+ their custom session contexts will have to implement
51+ ICurrentSessionContextWithFactory and add a parameterless public constructor
52+ to their custom context, and move their custom instantiation logic from
53+ IObjectsFactory.CreateInstance(Type, object[]) to
54+ IObjectsFactory.CreateInstance(Type).
55+ * Various *Binding classes of NHibernate will now always have their protected
56+ dialect field null. (These classes are not expected to be derived by users,
57+ as there is no way to use custom descendants with NHibernate.)
58+ * AbstractPersistentCollection.AfterInitialize does no more perform queued
59+ operations. Queued operations are now run by a later call to a new method,
60+ ApplyPendingOperations. Concrete custom implementations relying on the queued
61+ operations to be done by their base AfterInitialize will need to be changed
62+ accordingly.
63+
64+ Not yet merged possible breaking changes:
65+ * ISession.Persist will no more always trigger immediate insertion of entities
66+ having an identity-like id generator. See #1754.
67+
68+ Not yet merged and not counted: #1859, #1855, #1836, #1831, #1793, #1812,
69+ #1759, #1754, #822, #1480, #1626, #1627
70+
71+ ** Bug
72+
73+ * #1886 Superfluous SQL casts generated in FirebirdClientDriver
74+ * #1885 Process classes accordingly to inheritance path in mapping by code
75+ * #1884 Fix attempt of static proxies to call base method for abstract classes
76+ * #1874 Item in child collection not being removed
77+ * #1872 Fix property ref handling
78+ * #1870 Update build-menu options in documentation
79+ * #1867 Fix registration of current_date for some dialects
80+ * #1849 Loquatious QueryCache constraint should be an IQueryCacheFactory constraint
81+ * #1824 property-ref on a component's property causes "wrong number of columns" error
82+ * #1821 Allow using ICompositeUserType for collection element mappings in Mapping By Code
83+ * #1818 Handle DbDataReaders that do not support GetSchemaTable
84+ * #1809 Update the mapping documentation
85+ * #1799 Default value of 'proxyfactory.factory_class' in the documentation
86+ * #1774 HQL and LINQ query by the type on with meta-type "string" fails
87+ * #1769 Table mapping for UniqueColumn uses unstable GetHashCode() method
88+ * #1764 Fix configuration schema forbidding custom bytecode provider
89+ * #1760 Support formula on one-to-many map-key
90+ * #1756 Fix unsaved-value for assigned identifiers
91+ * #1753 Fix possible InvalidCastException in ActionQueue
92+ * #1751 Avoid completing the same transaction twice
93+ * #1748 Fix a bad setting naming about transaction scopes
94+ * #1745 Remove obsoleted hibernate configuration prefix
95+ * #1744 Reconnect lazy property proxy on deserialization
96+ * #1737 Remove a binary breaking change introduced in #305
97+ * #1728 Generate a correct proxy for interfaces
98+ * #1727 Fix a null-ref exception with no-proxy one-to-one
99+ * #1726 Fix serialization exception when run on .NET Core 2.1
100+ * #1719 Cascade delete-orphan on no-proxy null association fails
101+ * #1706 Entity Projection: Fixed AsEntity() for root entity
102+ * #1704 GroupBy to custom class fails with ArgumentException
103+ * #1696 Fixed CriteriaImpl.Clone for readonly query
104+ * #1692 Update base_mapping.xml
105+ * #1673 Bitwise xor treated as pow with PostgreSQL
106+ * #1654 Fix the url to the quickstart of DocBook
107+ * #1635 IdentitySelectString implementation is inconsistent
108+ * #1612 Fix TypedValue not always using adequate comparer with SetParameterList
109+ * #1609 Schema validation using SQLite and a specific schema fails
110+ * #1344 NH-3864 - Cacheable Multicriteria/Future'd query with aliased join throw exception
111+ * #1339 NH-3823 - Initialization of Set with Lazy=Extra causes pending additions to disappear
112+ * #1338 NH-3806 - Saving entities with proxy associations leads to fetching associated entities
113+ * #1300 NH-3403 - Wrong parameter size in query with MsSql2000Dialect,MsSql2005Dialect and MsSql2008Dialect
114+ * #1293 NH-3350 - Duplicate records using Future()
115+ * #1214 NH-2180 - Many-To-Many with Property-ref fails to get subitems with FetchMode Join
116+ * #1201 NH-1316 - PostgreSQL dialect use of lastval to retrieve last inserted "id" not safe with Triggers
117+ * #1182 NH-3860 - Missing EntityName in IManyToOneMapper
118+ * #1170 NH-3646 - Incorrect query when items removed from a collection of components contain null values
119+ * #1163 NH-3545 - SchemaValidator fails for PostgreSql sequences
120+ * #1121 NH-3095 - Cast from mapped long field to enum leads to 'Specified cast not valid'
121+ * #1096 NH-2836 - SchemaValidator throws with SqlCe4 if db-schema set
122+ * #1037 NH-3749 - Unnecessary comma in CREATE TABLE statement
123+ * #1016 NH-3007 - Informix dialect generates incorrect boolean constants
124+ * #1000 NH-2558 - NoViableAltException with boolean expression in OrderBy clause
125+
126+ ** New Feature
127+
128+ * #1892 Allow disabling Firebird driver parameter casting
129+ * #1879 LINQ Coalesce and Conditional on Properties
130+ * #1848 Add in ByCode support of all type mappings on Id
131+ * #1833 Parametrize string type comparer
132+ * #1830 Add a Linux build menu
133+ * #1796 Support CacheMode in QueryBatch
134+ * #1786 Document future results
135+ * #1772 Support futures with stateless session
136+ * #1752 Async ISynchronization
137+ * #1742 Add new DB2CoreDriver to use with IBM.Data.DB2.Core provider
138+ * #1693 Implement SurrogateSelector
139+ * #1690 Bitwise xor not supported by SQLite
140+ * #1682 Add support for System.MathF methods
141+ * #1662 Add support for SAP HANA
142+ * #1633 Added support for batching 2nd level cache operations when loading entities and collections
143+ * #1631 Create UtcTicks and UtcDbTimestamp types
144+ * #1599 Full control of entities fetching in Criteria
145+ * #1381 NHibernate's IQuery is missing AddSynchronizedQuerySpace
146+ * #920 NH-3991 - Support for Sybase ASE ADO.NET 4 Provider
147+ * #897 NH-2187 - ElementAt LINQ extension method is not supported.
148+ * #838 NH-3805 - Add support for string indexer property (get_Chars)
149+ * #819 NH-3088 - Support the item operator [] on lists in linq queries
150+
151+ ** Improvement
152+
153+ * #1890 Merge two logs in one
154+ * #1875 Improve exception message in case of duplicated column
155+ * #1869 Replace an O(n) lookup in LINQ query parsing by an O(1) one
156+ * #1846 Remove dependency on System.Security.Permissions package for .NET Standard and .NET Core
157+ * #1842 Remove WcfOperationSessionContext from .Net Core and .Net Standard
158+ * #1838 Cannot add HqlJoin to HqlFrom
159+ * #1827 Include the query in loader PostInstantiate QueryException
160+ * #1819 Append the batched sql statement when StaleStateException occurs
161+ * #1814 Mark proxy assembly with IgnoresAccessChecksToAttribute to allow implementing non public interfaces
162+ * #1808 Support mixed formulas and columns
163+ * #1792 Obsolete HolderInstantiator
164+ * #1788 Implement multiple get and put for query cache and query batch
165+ * #1785 Update user types documentation
166+ * #1782 Refactor BugTestCase
167+ * #1781 Clean-up IObjectsFactory usages
168+ * #1778 Allow to use dynamic objects as dynamic components
169+ * #1777 Replace ICache interface by a CacheBase class
170+ * #1776 Make cache types serialization friendly
171+ * #1775 Start/Stop required db-service for TeamCity
172+ * #1770 Make obsolete abstract virtual
173+ * #1767 Allow generic dictionaries for dynamic entities
174+ * #1765 Provide cacheable representations for all NHibernate built-in types
175+ * #1762 Remove duplicated and obsolete interceptor documentation
176+ * #1761 Update mapping documentation
177+ * #1736 Remove excessive rowIdAlias parameter in Loader
178+ * #1713 Update contributing guidelines
179+ * #1712 Support IEquatable in LINQ provider
180+ * #1710 Rationalize DateTimeOffset read and write
181+ * #1709 Lazy properties static proxy
182+ * #1703 Remove dialect instantiation in AddDeserializedMapping
183+ * #1700 Single place to specify TargetFrameworks
184+ * #1699 Add ability to load types from in-memory-only assemblies
185+ * #1698 Document setting the logger factory programmatically
186+ * #1694 Implement CollectionHelper.GetHashCode that accepts IEqualityComparer
187+ * #1689 Purge more Invariant culture usages
188+ * #1671 Decouple configuration of IObjectsFactory from BytecodeProvider
189+ * #1666 Handle multi-queries support in FutureBatch
190+ * #1656 Allow any cache.* property in NHibernate configuration
191+ * #1641 Add cross platform build for full .NET Framework
192+ * #1452 Async After-/BeforeTransactionCompletion
193+ * #874 NH-3543 - Enhanced Db2 driver to support multi query
194+ * #865 NH-2428 - Session.MultiCriteria and FlushMode.Auto inside transaction
195+ * #840 NH-3835 - Future/MultiCriteria 2nd level caching
196+ * #755 NH-3670 - Dynamic component should allow generic dictionary
197+ * #752 NH-3541 - Future queries of Criteria API/QueryOver are batched separately from other query methods
198+ * #696 Upgrade to ReLinq 2.2.0
199+ * #415 Add check to ensure that IUserCollectionType.Instantiate returns uninitialized collection
200+
201+ ** Task
202+
203+ * #1863 Release 5.2.0
204+ * #1823 Run tests for SQLite on .NET Core
205+ * #1783 Obsolete MultiQuery and MultiCriteria
206+ * #1773 Obsolete unused version related methods of SByteType
207+ * #1771 Obsolete unused "xml" type methods
208+ * #1743 Merge 5.1.3 into master
209+ * #1739 Upgrade to AsyncGenerator 0.8.2.7
210+ * #1688 Merge 5.1.2 into master
211+ * #1687 Update NUnit to 3.10.1
212+ * #881 NH-3358 - Document all attributes for the element tag
213+
214+ ** Tests
215+
216+ * #1887 Test ref and out methods with static proxy
217+ * #1724 NH-2716 - Modify test case for discarding the alleged bug
218+ * #1584 Test Parent property is not accessible in queries
219+ * #1414 Test ISession.IsDirty() should not trigger cascade saving
6220
7221As part of releasing 5.2.0, a misnamed setting in 5.0.0 release notes has been fixed:
8222transaction.use_connection_on_system_events correct name is transaction.use_connection_on_system_prepare
0 commit comments