findAllByPath now falls back to the older findAllByProperty for better backward compatibility.
Also the path is included in the query name used for MyBatis.
Original Pull Request: #157
The onEmpty attribute allows to define if an embedded entity should be set to null or a default instance if all properties backing the entity are actually null.
@Embedded(onEmpty = USE_NULL)
EmbeddedEntity embeddedEntity;
Original pull request: #154.
Simplify conditionals with nested ternary operators. Migrate RelationResolver.findAllBy to returning Iterable of Object instead of T as there is no type contract present. Use Spring utilities where applicable. Simplify tests. Fix warnings, Javadoc, Formatting.
Original pull request: #153.
Also solved DATAJDBC-369 since it made refactoring easier.
Known limitation: Back-references to intermediate key columns currently can't get renamed and use the name defined by the property where they become part of the path.
Backward compatibility of the JdbcConfiguration is still broken.
Original pull request: #153.
We now allow read and write of Objects annotated with Embedded that are actually null.
When writing all contained fields will be nulled.
Reading back the entity considers an embedded object to be null itself if all contained properties are null within the backing result.
Relates to DATAJDBC-364
Original Pull Request: #151
We tried to set all the properties, even when they were already set via constructor.
Fixed it by unifying the three instances where we created and populated instances.
Original Pull Request: #151
Deprecate remaining DataAccessStrategy types in jdbc.core and create replacements in jdbc.core.convert. Migrate using code to replacement types.
Simplify warnings and if flows. Add since version to deprecations.
Move MyBatisDataAccessStrategyUnitTests from core to mybatis package.
Original pull request: #150.
Introduced a `ReadingContext` in the `EntityRowMapper` to avoid passing the `ResultSet` and the `path` all over the place.
Added a dependency test to Spring Data Relational and fixed the test failure by moving the PersistentPropertyPathExtension to core.mapping.
Original pull request: #150.
Implemented workaround for MySql not supporting offset without Limit.
Using `SELECT 1` as dummy order by since it is documented to be optimized away.
Renamed tests to match the project standard.
See also:
- https://stackoverflow.com/a/44106422
- https://stackoverflow.com/a/271650
Original pull request: #125.
We now support Dialect abstractions to consider vendor-specific deviations in SQL query rendering. Dialects support right now:
Feature flags for array support
Limit and Offset handling
The rendering is extended by considering rendering callback hook functions.
Current dialects:
Postgres SQL
SQL Server (2012)
MySQL
Original pull request: #125.
Encapsulate column caches in Columns type.
Relax RelationalMappingContext to MappingContext with appropriate generics. Remove unused SQL generator source. Cache table and Id column objects. Simplify assertions. Consistently use naming pattern for named parameters.
Migrate http URLs to https.
Original pull request: #147.
SqlGenerator basically got rewritten using the new SQL rendering API.
The SQL rendering API got some minor improvements in the process.
The whole generation process is now based on paths instead of properties which makes the actual logic of the construction much more obvious.
Original pull request: #147.