Commit Graph

18 Commits

Author SHA1 Message Date
Mark Paluch
5df9b355eb #15 - Incorporate review feedback.
Improve Javadoc. Rename parameters for more expressiveness. Replace ASCII filtering with filter Function to move actual filtering into dialects.

Original pull request: #19.
2018-11-21 10:16:14 +01:00
Mark Paluch
9700c3c087 #15 - Add BindMarkers abstraction.
We now expose a bind marker API that allows to model a vendor-specific bind marker strategy. The currently supported database systems (Postgres, MsSql) implement indexed respective named strategies that differ in how placeholders and identifiers are generated.

Original pull request: #19.
2018-11-21 10:16:05 +01:00
Mark Paluch
226c80fb02 #12 - Retain input item order in save(…) methods.
We now use concatMap(…) instead of flatMap(…) when saving items to retain output item order.
2018-11-12 15:13:19 +01:00
Mark Paluch
12dc98bcbd #2 - Polishing. 2018-10-17 11:11:16 +02:00
Mark Paluch
d60d8b04a0 #2 - Switch dependency test to assumption. 2018-10-17 11:11:13 +02:00
Mark Paluch
f223475112 #2 - Adapt to R2DBC API changes. 2018-10-17 11:11:07 +02:00
Mark Paluch
1464df99d4 #2 - Add transactional support.
We now support transaction hosting and transaction management via TransactionalDatabaseClient.

TransactionalDatabaseClient databaseClient = TransactionalDatabaseClient.create(connectionFactory);

Flux<Integer> integerFlux = databaseClient.inTransaction(db -> {

	return db.execute().sql("INSERT INTO legoset (id, name, manual) VALUES($1, $2, $3)") //
			.bind(0, 42055) //
			.bind(1, "SCHAUFELRADBAGGER") //
			.bindNull("$3") //
			.fetch().rowsUpdated();
});
2018-10-17 11:11:06 +02:00
Oliver Gierke
853b3fb449 #2 - Adapt code to API changes. 2018-10-17 11:11:05 +02:00
Jens Schauder
bea95010ae #2 - Fixes and improves the Dependency test.
Now considers the new packages appropriately as well.
consideres the `repository` package to be part of the sub-module `repository.reactive`.
2018-10-17 11:11:03 +02:00
Mark Paluch
831e753658 #2 - Introduce R2DBC exception translation.
We now provide exception translation for R2DBC exceptions based on Spring JDBC's SQLErrorCodes.
2018-10-17 11:10:58 +02:00
Mark Paluch
8b006abbe5 #2 - Create relational and r2dbc packages.
Move types into relational and r2dbc packages in preparation for a later module separation.
2018-10-17 11:10:54 +02:00
Mark Paluch
f794bfc3ab #2 - Add R2dbcRepositoryFactory and simple query subsystem. 2018-10-17 11:10:48 +02:00
Mark Paluch
28dee1274f #2 - Add updates to SimpleR2dbcRepository. 2018-10-17 11:10:45 +02:00
Mark Paluch
590df39bc8 #2 - Add tests for SimpleR2dbcRepository. 2018-10-17 11:10:44 +02:00
Mark Paluch
ee5e3a72e8 #2 - Refactor R2dbc test support code into R2dbcIntegrationTestSupport. 2018-10-17 11:10:42 +02:00
Mark Paluch
4d5d310741 #2 - Add DatabaseClient.select().
We now allow typesafe and generic selection of rows.
2018-10-17 11:10:35 +02:00
Mark Paluch
b8375f5a96 #2 - Refactor to functional usage of resources.
DatabaseClient now creates functions. The actual invocation/execution takes place from DefaultFetchFunctions (FetchSpec) to keep stateful resources in the scope of the execution. execute()/executeMany() use Flux.usingWhen/Mono.usingWhen to release connections after their usage.
2018-10-17 11:10:30 +02:00
Mark Paluch
c59e9a58eb #2 - Add DatabaseClient.
Provide DatabaseClient and add ExternalDatabase class to provide database connection details/encapsulate a dockerized testcontainer.
2018-10-17 11:10:20 +02:00