Commit Graph

121 Commits

Author SHA1 Message Date
Oliver Gierke
95d316367b DATAJDBC-232 - Adapt code to changes to support immutable entities.
We now treat all properties of an entity mutable and continue to use the reflective PersistentPropertyAccessor implementation to make sure we don't break the old behavior of reflectively mutating immutable objects.

This is a workaround for now and has to be replaced by more exhaustive changes later.

Related tickets: DATACMNS-1322.
2018-07-13 16:50:30 +02:00
Oliver Gierke
9991946d92 DATAJDBC-226 - Renamed all types named Jdbc… in relational package Relational…. 2018-06-22 15:40:32 +02:00
Oliver Gierke
8a67e52b61 DATAJDBC-226 - Extracted packages not directly tied to JDBC into separate package. 2018-06-22 15:33:13 +02:00
Jens Schauder
0a0e774129 DATAJDBC-137 - Fixes warnings and improves Javadoc.
All packages now use @NoNullApi.
All warnings related to that fixed, except a few cases where upstream annotations are simply wrong.
Added null checks.
Fixed generic types where possible.
Improved Javadoc.
Code Formatting.
2018-06-11 16:15:52 +02:00
Mark Paluch
b9c6b8b943 DATAJDBC-102 - Polishing.
Pull entity instantiation into a single method.

Original pull request: #68.
2018-06-04 16:12:59 +02:00
Jens Schauder
b91da91a83 DATAJDBC-102 - Polishing.
Execute Hsql specific integration test only with Hsql.

Original pull request: #68.
2018-06-04 16:12:59 +02:00
Jens Schauder
0ebb4a7799 DATAJDBC-102 - Determine the EntityInstantiator to be used dynamically.
Replaced the direct use of EntityInstantiator with EntityInstantiators.
Moved it into the MappingContext because instantiation is part of the mapping process.

Original pull request: #68.
2018-06-04 16:12:59 +02:00
Jay Bryant
17476391fe DATAJDBC-222 - Full editing pass for Spring Data JDBC.
Edited for spelling, punctuation, grammar, usage, and corporate voice.
Also added an epub cover image and the SVG file from which it can be generated.

Original pull request: #73.
2018-06-04 07:40:51 +02:00
Oliver Gierke
fca2ef6629 DATAJDBC-137 - Improve EntityInformation usage.
Moved to both the usage of the newly introduced PersistentEntity.isNew(…) and identifier lookups via PersistentEntity instead of using a custom EntityInformation implementation. JdbcRepositoryFactory now creates a PersistentEntityInformation, SimpleJdbcRepository simply works with a PersistentEntity.

Removed references to EntityInformation (a repository subsystem concept) from the template implementation. Removed BasicJdbcPersistentEntity and its tests entirely. JdbcAuditingEventListener is now using an IsNewAwareAuditingHandler.

Related tickets: DATACMNS-1333.
2018-05-31 22:28:06 +02:00
Jens Schauder
6bf916b9c4 DATAJDBC-207 - Polishing.
Formatting.
2018-05-23 15:24:43 -05:00
Jens Schauder
b4b6625d50 DATAJDBC-207 - Default NamingStrategy is now Snake Case.
Moved the implementation from the DelimiterNamingStrategy into the NamingStrategy.
Dropped the support for different separators, since there is no good way to support it in the default implementations of an interface.
A getSeparator() method would bleed into the public API.
Also the added value of that flexibility seems limited.

During migration of the various test it became obvious that SqlGeneratorUnitTests was broken since test failures happend on a worker thread not on the main test thread.
This is fixed as well with this commit.
2018-05-23 15:24:35 -05:00
Jens Schauder
0460f2f509 DATAJDBC-188 - Ensure proper behavior of delete logic.
No behavior changed.
Added tests on various levels for deleting entities with references to other entities.
2018-05-23 15:15:50 -05:00
Jens Schauder
bd9b1ed301 DATAJDBC-174 - First version of a reference documentation. 2018-05-23 15:10:25 -05:00
Jens Schauder
01478cc53d DATAJDBC-143 - Removed domain type parameter form JdbcEntityOperations.save().
Such a parameter would only make sense with inheritance and we don't support inheritance at all in the moment.
Anything we need in order to support inheritance should be added once we do support inheritance.
2018-05-23 15:05:09 -05:00
Jens Schauder
387c3eca18 DATAJDBC-220 - Added a Degraph test for inter module dependencies.
The existing test only analysed Spring Data JDBC itself.
The new test also considers packages from commons and treats

    org.springframework.data.x.X

and

    org.springframework.data.jdbc.x.Y

as belonging to the same "sub-module" "x".
2018-05-22 15:41:21 +02:00
Oliver Gierke
e4de5701d4 DATAJDBC-138 - Polishing.
Moved all types from mapping.model into model to align with the setup of other Spring Data modules.

Original pull request: #67.
2018-05-18 16:35:13 +02:00
Jens Schauder
bd7401b665 DATAJDBC-138 - Improve package structure and naming.
Moved SimpleJdbcRepository into support package.
Moved mapping package under core.
Renamed JdbcEntityOperations to JdbcAggregateOperations.
2018-05-18 16:35:13 +02:00
Oliver Gierke
d0a8af21a3 DATAJDBC-137 - Polishing.
Moved the dependency to NamedParameterJdbcOperations out of JdbcMappingContext. This revealed that despite the DataAccessStrategy abstraction, there are a couple of places in the query execution subsystem that work with a plain NamedParameterJdbcOperations instance, so that we now have to carry that around all the way from the repository factory bean. Improving that is subject for further changes.

A bit of JavaDoc and generics polish here and there.
2018-05-18 15:11:27 +02:00
Oliver Gierke
fbc271a83a DATAJDBC-106 - Polishing.
Moved annotation processing of @Table and @Column into metamodel classes so that the NamingStrategy is only responsible for generic fallbacks. Allow @Column to be used as meta-annotation.
2018-05-18 13:57:46 +02:00
Oliver Gierke
eab63d8848 DATAJDBC-137 - Cleanups in the repository and repository.support packages. 2018-05-18 12:30:38 +02:00
Jens Schauder
fe98964d72 DATAJDBC-216 - Polishing.
Simplified code by using constructor injection plus Lombok.
Removed superfluous handling of BeforeSave events with null entity.

Original pull request: #71.
2018-05-18 07:53:45 +02:00
Kazuki Shimizu
0c863eb180 DATAJDBC-216 - Support @Id property primitive type for auditing.
The new check is now properly done using Spring Data meta Informationen.

Original pull request: #71.
2018-05-18 07:52:02 +02:00
Jens Schauder
46a07ac9f7 DATAJDBC-106 - Polishing.
Formatting and Javadoc.

Original pull request: #65
2018-05-17 16:07:57 +02:00
Kazuki Shimizu
cd7403907a DATAJDBC-106 - Support to specify a database object names using annotations.
@Table and @Column annotation added for configuring table and column names.

Original pull request: #65.
2018-05-17 16:06:40 +02:00
Christoph Strobl
1b8c6111db DATAJDBC-202 - Prepare 1.0 M3 (Lovelace). 2018-05-17 09:50:48 +02:00
Christoph Strobl
1c60426976 DATAJDBC-202 - Updated changelog. 2018-05-17 09:50:47 +02:00
Oliver Gierke
35fa0d184c DATAJDBC-212 - Adapt to SpEL extension API changes in Spring Data Commons.
Related tickets: DATACMNS-1260.
2018-05-15 11:10:08 +02:00
Jens Schauder
f1e36a73e1 DATAJDBC-209 - Polishing.
Added a comment to explain why we have to use a Timestamp for the comparison.

Original pull request: #66.
2018-05-15 10:35:04 +02:00
Kazuki Shimizu
52a8daf003 DATAJDBC-209 - Improve assertion on The QueryAnnotationHsqlIntegrationTests#executeCustomQueryWithReturnTypeIsDate
Since Timestamp extends Date the repository returns the Timestamp as it comes from the database.
Trying to compare that to an actual Date results in non determistic results, so we have to use an actual Timestamp.

Original pull request: #66.
2018-05-15 10:33:37 +02:00
Jens Schauder
41e31b1916 DATAJDBC-201 - Reduced logging for builds.
Set logging level to WARN.
Removed a System.out call.

The detail loggers are still in the logback.xml as comments to be used for debugging and demonstration purposes.
2018-04-17 15:37:28 +02:00
Jens Schauder
53eea0202a DATAJDBC-204 - Polishing.
Extracted ApplicationContext and Repository construction into method in order to make the actual test stand out more.
Split a test in two.
JavaDoc.
Code formatting.
Removed access modifiers in tests.
2018-04-17 13:07:24 +02:00
Kazuki Shimizu
92cd333854 DATAJDBC-204 - Support for annotation based auditing.
When enabled by using @EnableJdbcAuditing entities will get properties annotated with

* @CreatedBy
* @CreatedDate
* @LastModifiedBy
* @LastModifiedDate

updated when saved.

Original pull request: #64.
2018-04-17 12:54:29 +02:00
Mark Paluch
f83602d78e DATAJDBC-176 - Prepare 1.0 M2 (Lovelace). 2018-04-13 14:30:01 +02:00
Mark Paluch
5a00fc394e DATAJDBC-176 - Updated changelog. 2018-04-13 14:30:00 +02:00
Jens Schauder
cc477f8c89 DATAJDBC-200 - Renamed Events to have an 'Event' suffix.
Original pull request: #60.
2018-04-13 12:06:56 +02:00
Jens Schauder
3f89062bc1 DATAJDBC-199 - Fix @since JavaDoc comments. 2018-04-12 16:32:25 +02:00
Chr1st0ph
5382d3b94e DATAJDBC-198 - Prevent HSQL specific tests to run when a different database profile is selected.
Set active profile on HSQL specific tests to HSQL.

Fixed Readme to properly reflect the need to have a Docker installation.

Original pull request: #59.
2018-04-12 15:30:10 +02:00
Mark Paluch
eb0f62181e DATAJDBC-197 - Polishing.
Rename AfterCreation event to AfterLoadEvent to align with other Spring Data modules. Add missing generics. Remove since tags pointing to version 2.0. Slightly tweak tests.

Original pull request: #58.
2018-04-11 16:19:37 +02:00
Jens Schauder
fbac3a5529 DATAJDBC-197 - Repositories find methods now emit AfterLoadEvents as intended.
Event publishing moved into the JdbcEntityTemplate in order to ensure events for AggregateRoots.

Removed superfluous AggregateChange from AfterCreation event.

Original pull request: #58.
2018-04-11 16:19:12 +02:00
Chr1st0ph
d4b2eca43a DATAJDBC-196 - Integration-test-support for MariaDB.
Original pull request: #57.
2018-04-11 09:34:12 +02:00
Jens Schauder
dba9d3f4ee DATAJDBC-195 - SqlGenerator now uses upper ase key words. 2018-04-10 10:30:23 +02:00
Jens Schauder
c7958f82a3 DATAJDBC-178 - Polishing.
Renamed MyBatisNamingStrategy into NamespaceStrategy.
This avoids the confusion with the existing NamingStrategy.

Introduced a default instance.
Added a method creating a proper DataAccessStrategy with a NamespaceStrategy.

JavaDoc.

Original pull request: #44.
2018-04-03 14:35:43 +02:00
Kazuki Shimizu
45a6d3467a DATAJDBC-178 - Allow customizing the MyBatis namespace.
The MyBatis namespace used can now be customised by providing a NamespaceStrategy to the MyBatisDataAccessStrategy.

Original pull request: #44.
2018-04-03 14:26:03 +02:00
Christoph Strobl
db2b44db63 DATAJDBC-155 - Polishing.
Update Javadoc, assert state, default nullable properties in afterPropertiesSets and add tests.

Original pull request: #54.
2018-03-27 14:37:24 +02:00
Jens Schauder
aaae9a5f5c DATAJDBC-155 - Simplified construction of JdbcRepositoryFactory.
Made the DefaultDataAccessStrategy actually the default for JdbcRepositoryFactoryBean.
Therefore the injection of a strategy is optional.

Simplified constructors of DefaultDataAccessStrategy.
Created factory method to construct a correct DataAccessStrategy for use with MyBatis.

Did some untangling in the test application context configurations.

Original pull request: #54.
2018-03-27 14:36:07 +02:00
Kazuki Shimizu
6303227732 DATAJDBC-190 - Fix some wrong/weird usage of AssertJ.
Original pull request: #50.
2018-03-23 14:44:34 +01:00
Jens Schauder
e477d763c1 DATAJDBC-189 - Polishing.
Removed DefaultNamingStrategy since we don't have GA release breaking APIs is still ok.
Introduced an instance of NamingStrategy so we don't have to create a new class whereever we just want the default implementation.

JavaDoc.
Formatting

Original pull request: #36.
2018-03-23 14:11:26 +01:00
Michael J. Simons
a6e4380789 DATAJDBC-189 - Move default implementation to NamingStrategy
This makes it nicer to overwrite certain aspects with a lambda instead of an anonymous class. Brings the naming strategy in line with pairs like WebMvcConfigurer / WebMvcConfigurerAdapter.

Original pull request: #36.
2018-03-23 13:00:40 +01:00
Jens Schauder
b1115833ab DATAJDBC-184 - Polishing.
Minor changes to JavaDoc and formatting.

Original pull request: #49.
2018-03-23 12:47:38 +01:00
Kazuki Shimizu
924bb55394 DATAJDBC-184 - Support the delimiter character naming strategy.
Original pull request: #49.
2018-03-23 12:45:06 +01:00