Commit Graph

17 Commits

Author SHA1 Message Date
Mark Paluch
6267047f17 #16 - Add abstract configuration class for R2DBC.
We now provide an abstract R2DBC configuration that registers beans required for R2DBC's DatabaseClient.

Original pull request: #17.
2018-11-21 10:21:14 +01:00
Mark Paluch
881c97784b #13 - Add @EnableR2dbcRepositories.
We now provide an annotation-based activation model for R2DBC repositories. Configuration classes can be annotated with @EnableR2dbcRepositories and configuration infrastructure will scan for bean definitions to implement declared R2DBC repositories.

Original pull request: #17.
2018-11-21 10:21:07 +01:00
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
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
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