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