Introduces the BatchedActions abstraction to encapsulate the different ways singular actions get combined into batched actions.
Original pull request #1230
Original pull request #1229
Original pull request #1228
Original pull request #1211
Remove behavior from WritingContext for creating InsertBatch in favor of SaveMergedAggregateChange.
Update all save paths to use SaveMergedAggregateChange.
+ Update #populateIdsIfNecessary return type from T to List<T>
Pull out an abstract BatchWithValue class from InsertBatch to use it for batching root inserts as well.
Rename InsertBatch to BatchInsert
Rename AggregateChangeWithRoot to RootAggregateChange.
Original pull request #1211
The `@ReadOnlyProperty` annotation is now honoured for references to entities or collections of entities.
For tables mapped to such annotated references, no insert, delete or update statements will be created.
The user has to maintain that data through some other means.
These could be triggers or external process or `ON DELETE CASCADE` configuration in the database schema.
Closes#1249
Original pull request #1250
+ Copy logic from QueryMapper#convertToJdbcValue to resolve Iterable
arguments on findBy* query methods to resolve the same for @Query.
+ Use parameter ResolvableType instead of Class to retain generics info.
Original pull request #1226Closes#1212
Since at the time of the release only snapshot releases of mybatis-spring 2.1 are available we decided to downgrade to 2.0.7. for the release.
Unfortunately that release is not compatible with the current milestone of Spring Framework and therefore the MyBatis integration is broken.
If you want to use MyBatis with this release, manually add a dependency to mybatis-spring 2.1.0-SNAPSHOT.
Closes#1245
+ Added #getIdValueSource to DbAction.WithEntity since it now applies to all such DbAction.
+ Removed DbAction.WithGeneratedId in favor of DbAction.WithEntity where it was used.
Removes unused DbAction.Update.
Passes the root from BeforeSaveCallback through to InsertRoot,UpdateRoot
actions.
+ Isolate aggregate change #getEntity #setEntity behaviors into a new
interface for "save" changes.
+ Extract #setEntity from DbAction.WithEntity to a new DbAction interface
just for root actions.
+ JdbcAggregateChangeExecutionContext#populateIdsIfNecessary returns the root entity
from DbAction.InsertRoot or DbAction.UpdateRoot regardless of the immutability of
its @Id property.
Closes#1199Closes#1201
Original pull request #1208
Changed default behaviour to an empty name for embedded entities.
This allows to use embedded entities for column tuples without special prefix.
Original pull request #1149
Table alias for embedded entity use prefix value from Embedded annotation. But default value for prefix is empty string. If try to create SqlIdentifier for empty string it throw exception. To avoid this behavior, if prefix is an empty string, property name for embedded entity is taken instead.
This change extracts entity modifying behaviour into separate methods, so it doesn't appear as an unexpected side effect of the creation of aggregate changes.
Also some formatting.
Original pull request #1196
See #1137