Commit Graph

25 Commits

Author SHA1 Message Date
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
93ddaff3c2 #11 - Adapt Statement.bind(…) calls to newly introduced positional (integer-arg) binding.
We now use bind(int, …) methods to bind parameters by index.
2018-11-12 15:04:29 +01:00
Mark Paluch
c2ebfb8cd3 #10 - Adapt to removed Statement.executeReturningGeneratedKeys(). 2018-11-12 15:00:27 +01:00
Mark Paluch
12dc98bcbd #2 - Polishing. 2018-10-17 11:11:16 +02:00
Mark Paluch
a5e2a8e61f #2 - Polishing.
Introduce customization hook methods. Rename DefaultTypedGenericExecuteSpec to DefaultTypedExecuteSpec and GenericExecuteSpecSupport to ExecuteSpecSupport as types are not tied to generic execution. Encapsulate fields in DatabaseClient builders.
2018-10-17 11:11:10 +02:00
Mark Paluch
20eb2c1a6d #2 - Resolve package cycle between r2dbc.function and r2dbc.function.convert. 2018-10-17 11:11:09 +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
Mark Paluch
900918fa54 #2 - Use java.lang.Long as fallback Id type.
We now use java.lang.Long as fallback Id type for entities that do not declare an explicit Id property. Previously we used ObjectId which was a left-over from the initial draft of MappingRelationalEntityInformation.
2018-10-17 11:11:02 +02:00
Mark Paluch
cccc3808aa #2 - Polishing. 2018-10-17 11:11:00 +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
Oliver Gierke
c59ba067cc #2 - EntityRowMapper now prevents constructor argument properties from being read twice. 2018-10-17 11:10:55 +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
cee7479cd0 #2 - Exclude reactive repositories from JdbcRepositoryConfigExtension. 2018-10-17 11:10:51 +02:00
Mark Paluch
9d9c665f76 #2 - Polishing. 2018-10-17 11:10:50 +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
893149df8c #2 - Fix DefaultTypedInsertSpec.then(). 2018-10-17 11:10:40 +02:00
Mark Paluch
e8d3e055c6 #2 - Initial SimpleR2dbcRepository support. 2018-10-17 11:10:37 +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
1d5bb962fd #2 - Polishing. 2018-10-17 11:10:33 +02:00
Mark Paluch
ddc587e898 #2 - Introduce ConnectionAccessor.
Declare interface exposing inConnection(…) methods to encapsulate types implementing functionality that is applies within a connection scope. Move FetchSpec and SqlResult implementations to top-level types.
2018-10-17 11:10:31 +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