Commit Graph

333 Commits

Author SHA1 Message Date
Jens Schauder
ebe76a0c7f DATAJDBC-374 - Polishing.
Clarified the effects of collections on nullable embedded entities.

Original pull request: #154.
2019-05-22 12:49:17 +02:00
Christoph Strobl
55a3f9c372 DATAJDBC-374 - Introduce shortcuts for Embedded#onEmpty(…)
@Embedded.Nullable & @Embedded.Empty offer shortcuts for @Embedded(onEmpty = USE_NULL) and @Embedded(onEmpty = USE_EMPTY) to reduce verbositility and simultaneously set JSR-305 @javax.annotation.Nonnull accordingly.

    @Embedded.Nullable
    EmbeddedEntity embeddedEntity;

Original pull request: #154.
2019-05-22 12:47:24 +02:00
Christoph Strobl
5830b83cf4 DATAJDBC-374 - Add onEmpty attribute to Embedded annotation.
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.
2019-05-22 12:46:46 +02:00
Mark Paluch
f69aa31958 DATAJDBC-223 - Polishing.
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.
2019-05-22 11:57:52 +02:00
Jens Schauder
097190ee42 DATAJDBC-223 - Chains of Lists or Maps get properly stored and loaded.
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.
2019-05-22 11:57:21 +02:00
Mark Paluch
c87d8b8d31 DATAJDBC-371 - Updated changelog. 2019-05-13 14:59:24 +02:00
Mark Paluch
2b0aaa5d6a DATAJDBC-363 - After release cleanups. 2019-05-13 12:17:53 +02:00
Mark Paluch
221eb9dcc8 DATAJDBC-363 - Prepare next development iteration. 2019-05-13 12:17:52 +02:00
Mark Paluch
75aabdabba DATAJDBC-363 - Release version 1.1 M4 (Moore). 2019-05-13 11:59:50 +02:00
Mark Paluch
ca36007c24 DATAJDBC-363 - Prepare 1.1 M4 (Moore). 2019-05-13 11:59:04 +02:00
Mark Paluch
5aa12504c8 DATAJDBC-363 - Updated changelog. 2019-05-13 11:58:52 +02:00
Jens Schauder
bf3f99c585 DATAJDBC-370 - Polishing.
Refactored code to better use existing code.

Original Pull Request: #151
2019-05-13 09:24:13 +02:00
Christoph Strobl
3a89ec0444 DATAJDBC-370 - Fix read/write of nulled embedded objects.
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
2019-05-13 09:24:13 +02:00
Christoph Strobl
7f50c92477 DATAJDBC-370 - Polishing.
Re add wither method and add explicit test for immutable value.

Original Pull Request: #151
2019-05-13 09:23:57 +02:00
Jens Schauder
5854922ae8 DATAJDBC-370 - Fixed handling of entities with no withers.
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
2019-05-13 09:21:53 +02:00
Jens Schauder
060e404991 DATAJDBC-370 - Polishing.
Adding a missing issue reference to a test.

Original Pull Request: #151
2019-05-13 09:21:28 +02:00
Oliver Drotbohm
d0c432d029 DATAJDBC-351 - Updated changelog. 2019-05-10 12:57:19 +02:00
Mark Paluch
f43f054eff DATAJDBC-359 - Polishing.
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.
2019-05-07 15:48:25 +02:00
Jens Schauder
b1c68d901e DATAJDBC-359 - Support for arbitrary chains of entities with or without Id.
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.
2019-05-07 15:48:10 +02:00
Michael Simons
aea39d99c5 DATAJDBC-365 - Fix typos in readme.
Original pull request: #149.
2019-04-23 09:16:32 +02:00
Michael Simons
eb90efc24a DATAJDBC-361 - Fix minor typos in SqlGenerator.
Original pull request: #148.
2019-04-12 12:29:35 +02:00
Christoph Strobl
c80a334d56 DATAJDBC-337 - After release cleanups. 2019-04-11 12:00:20 +02:00
Christoph Strobl
727af3658f DATAJDBC-337 - Prepare next development iteration. 2019-04-11 12:00:19 +02:00
Christoph Strobl
7d48a3f98a DATAJDBC-337 - Release version 1.1 M3 (Moore). 2019-04-11 11:24:31 +02:00
Christoph Strobl
98fb114750 DATAJDBC-337 - Prepare 1.1 M3 (Moore). 2019-04-11 11:23:56 +02:00
Christoph Strobl
e5d04bf6d8 DATAJDBC-337 - Updated changelog. 2019-04-11 11:23:49 +02:00
Jens Schauder
f499017269 DATAJDBC-357 - Polishing.
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.
2019-04-09 15:31:02 +02:00
Mark Paluch
488ef53157 DATAJDBC-357 - Dialect support pagination and array support.
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.
2019-04-09 15:31:02 +02:00
Mark Paluch
141f2d77ac DATAJDBC-340 - Polishing.
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.
2019-04-09 09:48:38 +02:00
Jens Schauder
810c62b603 DATAJDBC-340 - Using new SQL generation DSL.
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.
2019-04-09 09:38:41 +02:00
Mark Paluch
22dd3640da DATAJDBC-347 - Add missing override to SelectBuilder.
SelectAndFrom now overrides all from(…) methods to return the appropriate builder continuation type.

Original pull request: #145.
2019-04-08 13:37:05 +02:00
Jens Schauder
ea089becee DATAJDBC-346 - Polishing.
Original pull request: #144.
2019-04-08 11:03:53 +02:00
Salim Achouche
1481803ab9 DATAJDBC-346 - Fixed test failures when using MSSQL database.
Original pull request: #144.
2019-04-08 11:03:38 +02:00
Sanghyuk Jung
082eafb62d DATAJDBC-355 - Remove unnecessary null check.
The source parameter must not be null according to Javadoc of Converter.

See also: https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/convert/converter/Converter.html

Original pull request: #146.
2019-04-08 10:18:05 +02:00
Mark Paluch
6f18648412 DATAJDBC-354 - Fix test fixture after Mockito upgrade. 2019-04-08 08:48:14 +02:00
Oliver Drotbohm
4923ba7076 DATAJDBC-333 - Updated changelog. 2019-04-01 20:56:25 +02:00
Spring Operator
913238a822 DATAJDBC-336 - URL Cleanup.
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://www.apache.org/licenses/ with 1 occurrences migrated to:
  https://www.apache.org/licenses/ ([https](https://www.apache.org/licenses/) result 200).
* [ ] http://www.apache.org/licenses/LICENSE-2.0 with 282 occurrences migrated to:
  https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0) result 200).

Original Pull Request: #140
2019-03-22 11:22:54 +01:00
Spring Operator
17128311f4 DATAJDBC-336 - URL Cleanup.
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.

* [ ] http://www.mybatis.org/mybatis-3/logging.html (200) with 1 occurrences could not be migrated:
   ([https](https://www.mybatis.org/mybatis-3/logging.html) result SSLHandshakeException).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://en.wikipedia.org/wiki/Dependency_Injection with 2 occurrences migrated to:
  https://en.wikipedia.org/wiki/Dependency_Injection ([https](https://en.wikipedia.org/wiki/Dependency_Injection) result 200).
* [ ] http://github.com/spring-projects/spring-data-jdbc with 1 occurrences migrated to:
  https://github.com/spring-projects/spring-data-jdbc ([https](https://github.com/spring-projects/spring-data-jdbc) result 200).
* [ ] http://spring.io/blog with 2 occurrences migrated to:
  https://spring.io/blog ([https](https://spring.io/blog) result 200).
* [ ] http://stackoverflow.com/questions/tagged/spring-data-jdbc with 2 occurrences migrated to:
  https://stackoverflow.com/questions/tagged/spring-data-jdbc ([https](https://stackoverflow.com/questions/tagged/spring-data-jdbc) result 200).
* [ ] http://contributor-covenant.org with 1 occurrences migrated to:
  https://contributor-covenant.org ([https](https://contributor-covenant.org) result 301).
* [ ] http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
  https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/) result 301).
* [ ] http://docs.spring.io/spring-data/data-commons/docs/current/api/index.html?org/springframework/data/domain/Persistable.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-data/data-commons/docs/current/api/index.html?org/springframework/data/domain/Persistable.html ([https](https://docs.spring.io/spring-data/data-commons/docs/current/api/index.html?org/springframework/data/domain/Persistable.html) result 301).
* [ ] http://docs.spring.io/spring-framework/docs/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/ ([https](https://docs.spring.io/spring-framework/docs/) result 301).
* [ ] http://help.github.com/forking/ with 2 occurrences migrated to:
  https://help.github.com/forking/ ([https](https://help.github.com/forking/) result 301).
* [ ] http://projects.spring.io/spring-data with 2 occurrences migrated to:
  https://projects.spring.io/spring-data ([https](https://projects.spring.io/spring-data) result 301).
* [ ] http://projects.spring.io/spring-framework with 2 occurrences migrated to:
  https://projects.spring.io/spring-framework ([https](https://projects.spring.io/spring-framework) result 301).
* [ ] http://www.springsource.org/download with 1 occurrences migrated to:
  https://www.springsource.org/download ([https](https://www.springsource.org/download) result 302).

Original Pull Request: #133
2019-03-21 10:07:21 +01:00
Spring Operator
323a13e118 DATAJDBC-336 - URL Cleanup.
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.

* http://mybatis.org/dtd/mybatis-3-mapper.dtd (301) with 2 occurrences could not be migrated:
   ([https](https://mybatis.org/dtd/mybatis-3-mapper.dtd) result SSLHandshakeException).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* http://maven.apache.org/xsd/maven-4.0.0.xsd with 4 occurrences migrated to:
  https://maven.apache.org/xsd/maven-4.0.0.xsd ([https](https://maven.apache.org/xsd/maven-4.0.0.xsd) result 200).
* http://projects.spring.io/spring-data-jdbc with 2 occurrences migrated to:
  https://projects.spring.io/spring-data-jdbc ([https](https://projects.spring.io/spring-data-jdbc) result 301).

# Ignored
These URLs were intentionally ignored.

* http://maven.apache.org/POM/4.0.0 with 8 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 4 occurrences

Original Pull Request: #132
2019-03-21 10:06:15 +01:00
Mark Paluch
7a738eed97 DATAJDBC-343 - Omit table prefixes for assignment columns.
INSERT and UPDATE assignments/column lists no longer include the table prefix for a column as columns as the support is Dialect-specific and we should generally assume columns in these clauses to belong to the table used in the statement.
2019-03-18 14:44:15 +01:00
Mark Paluch
78f26aa0a7 DATAJDBC-327 - Polishing.
Extend Javadoc. Reorder constructors in the order of their parameter number. Add missing assertions. Introduce utility to create predicates. Remove unused fields. Add since tags. Reformat.

Original pull request: #123.
2019-03-12 12:32:24 +01:00
Jens Schauder
35d9bb6e57 DATAJDBC-327 - Polishing.
Removed author tag for package-info.java

Original pull request: #123.
2019-03-12 12:32:24 +01:00
Jens Schauder
ceb15fe826 DATAJDBC-327 - Add support for conversion to JdbcValue and store byte[] as binary.
Some JDBC drivers depend on correct explicit type information in order to pass on parameters to the database.
So far CustomConversion had no way to provide that information.
With this change one can use @WritingConverter that converts to JdbcTypeAware in order to provide that information.

byte[] now also get stored as BINARY.

Original pull request: #123.
2019-03-12 12:32:24 +01:00
Christoph Strobl
a08584433a DATAJDBC-308 - Add missing dist.id property required for multi module build. 2019-03-07 14:34:29 +01:00
Christoph Strobl
d3859f1eb7 DATAJDBC-308 - After release cleanups. 2019-03-07 10:07:29 +01:00
Christoph Strobl
4fb0cf0487 DATAJDBC-308 - Prepare next development iteration. 2019-03-07 10:07:28 +01:00
Christoph Strobl
4242a65270 DATAJDBC-308 - Release version 1.1 M2 (Moore). 2019-03-07 09:42:21 +01:00
Christoph Strobl
c958a2c0d0 DATAJDBC-308 - Prepare 1.1 M2 (Moore). 2019-03-07 09:41:17 +01:00
Christoph Strobl
722d5af548 DATAJDBC-308 - Updated changelog. 2019-03-07 09:41:09 +01:00
Mark Paluch
1764457835 DATAJDBC-326 - Polishing.
Add Javadoc. Tweak naming and factory methods. Add equals/hashcode to Identifier. Extend tests.

Original pull request: #118.
2019-03-05 15:19:32 +01:00