Skip to content

Commit f2f9a3d

Browse files
Release 5.3
1 parent 111f755 commit f2f9a3d

File tree

2 files changed

+266
-2
lines changed

2 files changed

+266
-2
lines changed

build-common/NHibernate.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<NhVersion Condition="'$(NhVersion)' == ''" >5.3</NhVersion>
66
<VersionPatch Condition="'$(VersionPatch)' == ''">0</VersionPatch>
77
<!-- Clear VersionSuffix for making release and set it to dev for making development builds -->
8-
<VersionSuffix Condition="'$(VersionSuffix)' == ''">dev</VersionSuffix>
8+
<VersionSuffix Condition="'$(VersionSuffix)' == ''"></VersionSuffix>
99

1010
<VersionPrefix Condition="'$(VersionPrefix)' == ''">$(NhVersion).$(VersionPatch)</VersionPrefix>
1111
<VersionSuffix Condition="'$(VersionSuffix)' != '' AND '$(BuildNumber)' != ''">$(VersionSuffix).$(BuildNumber)</VersionSuffix>

releasenotes.txt

Lines changed: 265 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,268 @@
1-
Build 5.2.7
1+
Build 5.3.0
2+
=============================
3+
4+
Release notes - NHibernate - Version 5.3.0
5+
6+
210 issues were resolved in this release.
7+
8+
##### Possible Breaking Changes #####
9+
* A distributed cache may hold conflicting timestamps after upgrade for as much as twelve hours.
10+
Consider flushing a distributed cache after upgrade to avoid any issue. Do not share a distributed
11+
cache with applications using an earlier version of NHibernate.
12+
* The counter id generator may generate conflicting ids for as much as twelve hours after upgrade.
13+
* `update` and `delete` statements will now take into account any enabled filter on the entities
14+
they update or delete, while previously they were ignoring them. (`insert` statements will also take
15+
them into account, but previously they were failing instead of ignoring enabled filters.)
16+
* ISession.Persist will no more trigger immediate generation of identifier.
17+
* Bags will no more be loaded with "null" entities, they will be filtered out.
18+
* Setting the value of an unitialized lazy property will no more trigger loading of all the lazy
19+
properties of the entity.
20+
* If an unitialized lazy property has got its value set, without any other subsequent lazy property
21+
load on the entity, a dynamic update will occur on flush, even if the entity has dynamic updates
22+
disabled. This update will occur even if the set value is identical to the currently persisted
23+
property value.
24+
* Assigning an uninitialized proxy to a `no-proxy` property will no more trigger the proxy
25+
initialization. Moreover, reading the property afterwards will no more unwrap the assigned proxy,
26+
but will yield it.
27+
* A class having an explicitly implemented interface declaring a member with the same name than the
28+
class id will have its proxies trigger a lazy load if the interface "id" is accessed.
29+
* SQLite: in order to avoid a floating point division bug losing the fractional part, decimal are now
30+
stored as `REAL` instead of `NUMERIC`. Both are binary floating point types, excepted that `NUMERIC`
31+
stores integral values as `INTEGER`. This change may cause big integral decimal values to lose more
32+
precision in SQLite.
33+
* Custom dialects used for databases that do not support cross join will have to override
34+
`SupportsCrossJoin` property and set it to `false`.
35+
* `VisitorParameters.ConstantToParameterMap` may contain the same parameter for multiple constant
36+
expressions.
37+
* `ICache` caches yielded by the session factory will be `CacheBase` wrappers around the cache actually
38+
provided by the cache provider, if it was not deriving from `CacheBase`.
39+
40+
** Bug
41+
42+
* #2410 Second level cache failures with CoreMemoryCache
43+
* #2380 OData NotSupportedException MemberInit on base class member
44+
* #2346 Fix SQLite typing
45+
* #2336 Intermittent null reference exception on CloseConnection
46+
* #2324 Update IIsEntityDecider to use ExpressionsHelper.TryGetMappedType
47+
* #2319 Upgrade AsyncGenerator to 0.18.1
48+
* #2299 Proper query plan caching for DML LINQ queries
49+
* #2286 Wrong sql if used joined-subclass with filters for key columns
50+
* #2278 IInterceptor.OnPrepareStatement results not used in insert/update commands
51+
* #2266 Fix comment for Restrictions.IsEmpty
52+
* #2255 Fix a flaky test
53+
* #2245 Add sqlite.binaryguid to configuration schema
54+
* #2244 SelectMany Linq extension does not work correctly - subsequent FetchMany fails
55+
* #2233 Fix possible issue with async code for delayed entity inserts
56+
* #2231 Invalid alias name used in Linq Joins
57+
* #2222 NHibernate query plan for Linq Dml is not cached
58+
* #2219 Fix BuildTool output path
59+
* #2215 Fix ShowBuildMenu.sh
60+
* #2181 Skip null entities when bag is populated
61+
* #2164 Do not call GC.SuppressFinalize from finalizer thread
62+
* #2158 Proper support for IN clause for composite values in Criteria
63+
* #2147 Improve async locking
64+
* #2144 AdoTransaction memory leak (5.2.5)
65+
* #2137 NullReferenceException in EntityEntry.GetLoadedValue on an update of a never loaded detached entity
66+
* #2099 "Composite Index" not working with inheritance
67+
* #2088 Fix cacheable CreateSQLQuery throws on query with AddJoin
68+
* #2085 Duplicated methods generated in proxies
69+
* #2067 Wrong proxy built for base class with interfaced sub-classes
70+
* #2064 One-to-one properties not appearing in Select() projection result set
71+
* #2053 Dml Style Update fails with static where sql in mapping
72+
* #2038 Fix a typo on the memcached distributed cache description in the docs
73+
* #2029 Incorrect SQL for cast inside an aggregate (MS SQL)
74+
* #2019 Update symbol package format and add Sourcelink
75+
* #2000 Fixed Equals method for transformers
76+
* #1997 Fix criteria collection ordering
77+
* #1994 Extra Select for every "outfiltered" Element
78+
* #1993 InvalidCastException when merging a collection with a lazy property
79+
* #1985 DateTime.xxxx are not supported in SelectGroup
80+
* #1965 Fix code sample in docs, section 10.4.2
81+
* #1956 Fix lazy property caching
82+
* #1921 DML insert fails when a filter is enabled
83+
* #1738 Refresh of locally removed collection item crashes with "instance was not in a valid state"
84+
* #1480 Fix cache build for honoring mapped concurrency
85+
* #1368 NH-3778 - Crash when performing a Linq query on a one-to-one mapped reference
86+
* #1341 NH-3848 - Child collection fetched using left outer join with on clause or where clause restrictions on fetched collection shouldn’t be stored in second level cache.
87+
* #1312 NH-3493 - Cannot use alias between more than 1 level of nested queries
88+
* #1310 NH-3478 - StatefulPersistenceContext.RemoveEntity KeyNotFoundException on Evict
89+
* #1309 NH-3469 - Impossible to load one-to-one association with LINQ for composite-id
90+
* #1274 NH-3117 - Query on one-to-one property returns incorrect results
91+
* #1263 NH-2991 - Criteria withClause doesn't work in case of many to many collections
92+
* #1228 NH-2648 - HQL with joins in sub-select creates wrong SQL
93+
* #1206 NH-1761 - Criteria query inserts an extra order by expression when using JoinType.LeftOuterJoin and Projections
94+
* #1158 NH-3492 - SqlClientBatchingBatcher incorrectly ignoring per-SessionFactory Settings properties
95+
* #1128 NH-3210 - NHibernate Linq Provider does cross join or left outer join and not inner join (even if outer-join=false on many-to-one mapping)
96+
* #1124 NH-3155 - Linq subquery with group is not supported
97+
* #1125 NH-3178 - Exception when using one-to-one properties in a criteria projections
98+
* #1117 NH-3079 - Cannot use a sql custom loader with a composite ID
99+
* #1107 NH-2983 - Coalesce in projection doesn't work if there is more than 1 Coalesce
100+
* #1103 NH-2926 - CriteriaQuery - Unable to sort by composite-id
101+
* #1100 NH-2892 - The <key /> columns containing reserved words are not quoted
102+
* #1059 NH-1001 - Select statement issued for each not-found=ignore
103+
* #1047 NH-3865 - Swallowed ArgumentNullException with dynamic composite id
104+
* #1015 NH-2951 - Missing alias in hql update (select) statement with joined subclasses
105+
* #1006 NH-2714 - Properties mapped inside a <properties> group are not set when retrieving object
106+
107+
** New Feature
108+
109+
* #2392 Add locate support for SQLite
110+
* #2362 Add support for lt, gt, le, ge oData operators on strings
111+
* #2349 Add support for Oracle binary floating point types
112+
* #2347 Support fetching individual lazy properties for Criteria EntityProjection
113+
* #2327 Add cross join support for Hql and Linq query provider
114+
* #2313 Add overloads to ISession.Get taking both an entityName and a lockMode
115+
* #2294 Add StackExchangeRedis cache provider documentation
116+
* #2259 Schema auto-update should throw errors
117+
* #2221 Support MemberInit expression in group by
118+
* #2216 Add a driver to support Microsoft.Data.SqlClient provider
119+
* #2209 IN clause support in hql for composite keys on databases without row value constructor support
120+
* #2156 Support basic arithmetic operations (+, -, *, /) in QueryOver
121+
* #2135 Support OData GroupBy/Aggregate
122+
* #2116 Ability to replace ConfigurationManager with a custom config provider
123+
* #2107 Port Hibernate's Aggregate functions for subqueries
124+
* #2106 Port Hibernate's support subqueries in HQL as CASE statement alternatives
125+
* #2100 Allow to override default types with length or precision parameters
126+
* #2097 Add support for fetching an individual lazy property with Criteria
127+
* #2090 Add support for caching fetched relations with Criteria
128+
* #2080 Add ability to set custom collection type as a string in mapping by code
129+
* #2049 Fix property-ref ignoring not-found="exception" mapping
130+
* #1949 Port Hibernate's lazy attribute fetch groups
131+
* #1922 Add support for fetching an individual lazy property with hql and linq provider
132+
* #1861 Lazy loading and Eager initialization for Component
133+
* #1376 Composite id is incorrectly expanded in SQL
134+
* #1195 NH-4078 - LINQ fetched collections aren't cached
135+
* #981 NH-3873 - Explicit joins on unrelated classes
136+
* #959 NH-4048 - Support non-deterministic/db-side-only methods in Linq
137+
* #896 NH-1432 - Expression.Sql should support aliases other than {alias}
138+
139+
** Improvement
140+
141+
* #2404 Allow overriding default CastFunction
142+
* #2401 Optimize JoinWalker.WhereString method
143+
* #2399 Optimize PersistentGenericBag.EqualsSnapshot
144+
* #2394 Optimize PersistentGenericSet snapshot
145+
* #2352 Improve performance of ReflectHelper.GetMethod/Definition
146+
* #2350 Optimize LINQ batch item processing for queries with overridden result type
147+
* #2316 Add multiple arguments support for ISQLFunction
148+
* #2315 Add SetFlushMode for QueryOver and Linq
149+
* #2295 Optimize filter applying logic
150+
* #2287 Allow customizing 'alias to bean' property not found behavior
151+
* #2284 Make persistent collection classes implement the IReadOnly* interfaces
152+
* #2270 IQueryOver<T> is lacking some options
153+
* #2254 Add dev build version suffix
154+
* #2249 Improve handling of SqlCeParameter.SqlDbType
155+
* #2248 Remove most RemoveAsAliasesFromSql usages
156+
* #2241 Avoid duplicating parameters in LINQ query
157+
* #2238 Call generic query.List from Linq queries
158+
* #2235 Configure log4net from embedded resource log4net.xml in tests
159+
* #2232 Use SqlStringBuilder for batching Future/QueryBatch queries
160+
* #2226 Use DateTime.UtcNow for timestamps
161+
* #2225 Avoid unnecessary locking via MethodImplOptions.Synchronized
162+
* #2223 Short-Circuit SessionFactoryImpl.Close() when already closed
163+
* #2214 Allow configuring auto-join transaction globally
164+
* #2213 Add a shortcut to reduce Transaction.Current reads
165+
* #2211 Port SupportsRowValueConstructorSyntaxInInList values
166+
* #2182 Upgrade AsyncGenerator to 0.17.1
167+
* #2166 Optimize usages of SqlString.Append
168+
* #2163 Add virtual DefaultQueryProvider.CreateWithOptions
169+
* #2162 Use collection types for private members
170+
* #2161 Optimize ToArray conversions
171+
* #2159 Unify handling of composite values in hql and Criteria
172+
* #2153 Use generic parameters in ActionQueue
173+
* #2139 Add ability to set fetch for <one-to-one> mapping in mapping by code
174+
* #2131 Create Stopwatch only if stats is enabled
175+
* #2126 Upgrade AsyncGenerator to 0.14.0
176+
* #2125 Skip logger default initialization logic when logger provided by user
177+
* #2123 Use Assert.Throws instead of try-catch in tests
178+
* #2119 Obsolete interfaces for Loquacios configuration and use config classes directly
179+
* #2117 Replace array concatenation with hand written append
180+
* #2115 Statefull Session commit performance issue when nothing changed and second level cache with query cache enabled
181+
* #2091 Obsolete StringHelper.Join
182+
* #2084 Improve one-to-one handling in queries
183+
* #2082 Use entities prepared by Loader in hql select projections
184+
* #2078 Avoid unnecessary join for entity comparisons in with clause
185+
* #2071 Support subclass mapping with EntityName based base class mapping
186+
* #2061 Reduce cast usage for COUNT aggregate and add support for Mssql count_big
187+
* #2058 DB2 dialect enhancements
188+
* #2056 Optimize GetOrphans and remove wrong checks from IsNotTransientSlow
189+
* #2041 Hql entity join fixes
190+
* #2039 Use generic CollectingNodeVisitor in hql parser
191+
* #2036 Reduce cast usage for aggregate functions
192+
* #2032 Allow using ON instead of WITH in hql
193+
* #2024 Refactor to simplify netfx retargeting
194+
* #2022 Make CancellationToken optional for async Linq DML queries
195+
* #2009 Add support for IDictionary<string, object> to IQuery.SetProperties
196+
* #2007 Dispose session in cascade tests
197+
* #2006 Skip Topological sorting if not required
198+
* #2003 Avoid some cases of Type -> string -> Type conversion in Mapping By Code
199+
* #2002 Refactor DependentAlias handling logic in JoinWalker
200+
* #1999 Optimize DistinctRootEntityResultTransformer
201+
* #1989 Optimize ProxyCacheEntry equality for the same instance
202+
* #1988 Improve exception on user types lacking some interfaces
203+
* #1984 Reduce SessionIdLoggingContext creation
204+
* #1981 Remove AbstractLazyInitializer unused field
205+
* #1979 Refactor sequential select
206+
* #1977 Obsolete IDeserializationCallback from EntityKey
207+
* #1972 Port Hibernate's EntityKey optimization
208+
* #1968 Optimize StaticProxyFactory GetProxy and GetFieldInterceptionProxy methods
209+
* #1955 Optimize batchable cache calls for cached queries
210+
* #1947 Partially port Hibernate's current field interceptor mechanism
211+
* #1946 Port Hibernate's BytecodeEnhancementMetadata
212+
* #1944 Extend IAccessOptimizer to support getting/setting single property value
213+
* #1943 Skip initialization of lazy properties when setting one
214+
* #1923 Obsolete StringHelper.Replace
215+
* #1860 LINQ "==" operator generates OR with IS NULL
216+
* #1754 Delay entity insert on Persist until session is flushed
217+
* #1627 Refactored session List<T> method for Criteria
218+
* #913 NH-3704 - Allow Setting Dynamic Component Templates From Dictionary
219+
* #864 NH-2379 - Add support of Left Joins to Linq Provider
220+
* #803 NH-2521 - Session.EnableFilter method should work for HQL-DML statement
221+
* #780 NH-1200 - Exception occurs when using criteria exist queries
222+
* #767 NH-3892 - Add ability to coalesce using a property instead of a constant
223+
* #722 NH-1953 - Support Future for collection filters
224+
* #476 Eliminated double Persister resolution in Loader.InstanceNotYetLoaded flow
225+
226+
** Task
227+
228+
* #2397 Update GitReleaseManager
229+
* #2391 Use latest Firebird for AppVeyor and Travis
230+
* #2388 Release 5.3
231+
* #2382 Refactor debug logging in AbstractBatcher
232+
* #2381 Use optimized Dictionary.Remove(key, out value) in .NET Core
233+
* #2379 Simplify swap items logic in LINQ Visitors
234+
* #2377 Use dotnet to push packages to nuget
235+
* #2376 Add MyGet gallery link to readme
236+
* #2368 Replace SafetyEnumerable<T> with OfType<T> where applicable
237+
* #2363 Upgrade AsyncGenerator to 0.18.2
238+
* #2356 Obsolete IdentitySet class
239+
* #2354 Do not require Mono to build on not Windows
240+
* #2353 Update Microsoft.SourceLink.GitHub to 1.0.0
241+
* #2351 Get rid of JoinedEnumerable<T> and SingletonEnumerable<T>
242+
* #2348 Use static ReferenceComparer for reference comparisons
243+
* #2308 Merge 5.2.7
244+
* #2293 Update RtMemoryCache framework dependency
245+
* #2265 Fix code style issues
246+
* #2251 Publish development nightly builds on nuget
247+
* #2205 Merge 5.2.6
248+
* #2171 Upgrade NUnit
249+
* #2122 Update AsyncGenerator to 0.13.3
250+
* #2016 Avoid recursive calls in BatchFetchQueue
251+
* #2014 Obsolete Environment.Properties
252+
* #1973 Investigate licenseUrl deprecation
253+
* #1971 Add SourceLink to allow NuGet package debugging
254+
* #1940 Allow to provide dev specific properties in NHibernate.dev.props
255+
* #1936 Upgrade AsyncGenerator to 0.13.1
256+
257+
** Tests
258+
259+
* #2384 Tests to verify NH-2329 is obsolete
260+
* #2360 Add OData test for single property $expand
261+
* #2089 Bidirectional list fails if session only knows about child
262+
* #2066 Tests for proxy interface handling
263+
* #1966 Test duplicated join on some Linq queries
264+
265+
Build 5.2.7
2266
=============================
3267

4268
Release notes - NHibernate - Version 5.2.7

0 commit comments

Comments
 (0)