#215 - Polishing.

Minor formatting, trailing whitespace etc.
This commit is contained in:
Oliver Gierke
2016-11-23 09:55:52 +01:00
parent b68a4459bf
commit 00a4594764
4 changed files with 27 additions and 23 deletions

View File

@@ -2,7 +2,7 @@
This project contains samples of reactive data access features with Spring Data (Cassandra).
## Reactive Template API usage with `ReactiveCassandraTemplate`
## Reactive Template API usage with `ReactiveCassandraTemplate`
The main reactive Template API class is `ReactiveCassandraTemplate`, ideally used through its interface `ReactiveCassandraOperations`. It defines a basic set of reactive data access operations using [Project Reactor](http://projectreactor.io) `Mono` and `Flux` reactive types.
@@ -11,18 +11,18 @@ template.insert(Flux.just(new Person("Walter", "White", 50),
new Person("Skyler", "White", 45),
new Person("Saul", "Goodman", 42),
new Person("Jesse", "Pinkman", 27)));
Flux<Person> flux = template.select(select()
.from("person")
.where(eq("lastname", "White")), Person.class);
```
The test cases in `ReactiveCassandraTemplateIntegrationTest` show basic Template API usage.
The test cases in `ReactiveCassandraTemplateIntegrationTest` show basic Template API usage.
Reactive data access reads and converts individual elements while processing the stream.
## Reactive Repository support
Spring Data Cassandra provides reactive repository support with Project Reactor and RxJava 1 reactive types. The reactive API supports reactive type conversion between reactive types.
```java
@@ -35,9 +35,9 @@ public interface ReactivePersonRepository extends ReactiveCrudRepository<Person,
// Accept parameter inside a reactive type for deferred execution
Flux<Person> findByLastname(Mono<String> lastname);
Mono<Person> findByFirstnameAndLastname(Mono<String> firstname, String lastname);
@InfiniteStream // Use a tailable cursor
Flux<Person> findWithTailableCursorBy();
}
@@ -50,10 +50,10 @@ public interface RxJava1PersonRepository extends RxJava1CrudRepository<Person, S
@Query("SELECT * FROM person WHERE firstname = ?0 and lastname = ?1")
Single<Person> findByFirstnameAndLastname(String firstname, String lastname);
// Accept parameter inside a reactive type for deferred execution
Observable<Person> findByLastname(Single<String> lastname);
Single<Person> findByFirstnameAndLastname(Single<String> firstname, String lastname);
@InfiniteStream // Use a tailable cursor
@@ -72,7 +72,7 @@ More details can be found here: https://wiki.apache.org/cassandra/GettingStarted
### Start Cassandra
```
/usr/local/bin/cassandra -f
/usr/local/bin/cassandra -f
```
That should be enough to get you started.

View File

@@ -34,7 +34,11 @@ import org.springframework.data.cassandra.mapping.Table;
@Table
public class Person {
@PrimaryKeyColumn(type = PrimaryKeyType.CLUSTERED, ordinal = 2) private String firstname;
@PrimaryKeyColumn(type = PrimaryKeyType.PARTITIONED, ordinal = 1) private String lastname;
@PrimaryKeyColumn(type = PrimaryKeyType.CLUSTERED, ordinal = 2) //
private String firstname;
@PrimaryKeyColumn(type = PrimaryKeyType.PARTITIONED, ordinal = 1) //
private String lastname;
private int age;
}

View File

@@ -4,11 +4,11 @@ This project contains samples of reactive data access features with Spring Data
## Prerequisites
MongoDB requires the Reactive Streams driver to provide reactive data access.
The Reactive Streams driver maintains its own connections. Using Spring Data MongoDB Reactive support
MongoDB requires the Reactive Streams driver to provide reactive data access.
The Reactive Streams driver maintains its own connections. Using Spring Data MongoDB Reactive support
together with blocking Spring Data MongoDB data access will open multiple connections to your MongoDB servers.
## Reactive Template API usage with `ReactiveMongoTemplate`
## Reactive Template API usage with `ReactiveMongoTemplate`
The main reactive Template API class is `ReactiveMongoTemplate`, ideally used through its interface `ReactiveMongoOperations`. It defines a basic set of reactive data access operations using [Project Reactor](http://projectreactor.io) `Mono` and `Flux` reactive types.
@@ -17,16 +17,16 @@ template.insertAll(Flux.just(new Person("Walter", "White", 50),
new Person("Skyler", "White", 45),
new Person("Saul", "Goodman", 42),
new Person("Jesse", "Pinkman", 27)));
Flux<Person> flux = template.find(Query.query(Criteria.where("lastname").is("White")), Person.class);
```
The test cases in `ReactiveMongoTemplateIntegrationTest` show basic Template API usage.
The test cases in `ReactiveMongoTemplateIntegrationTest` show basic Template API usage.
Reactive data access reads and converts individual elements while processing the stream.
## Reactive Repository support
Spring Data MongoDB provides reactive repository support with Project Reactor and RxJava 1 reactive types. The reactive API supports reactive type conversion between reactive types.
```java
@@ -39,9 +39,9 @@ public interface ReactivePersonRepository extends ReactiveCrudRepository<Person,
// Accept parameter inside a reactive type for deferred execution
Flux<Person> findByLastname(Mono<String> lastname);
Mono<Person> findByFirstnameAndLastname(Mono<String> firstname, String lastname);
@InfiniteStream // Use a tailable cursor
Flux<Person> findWithTailableCursorBy();
}
@@ -54,13 +54,13 @@ public interface RxJava1PersonRepository extends RxJava1CrudRepository<Person, S
@Query("{ 'firstname': ?0, 'lastname': ?1}")
Single<Person> findByFirstnameAndLastname(String firstname, String lastname);
// Accept parameter inside a reactive type for deferred execution
Observable<Person> findByLastname(Single<String> lastname);
Single<Person> findByFirstnameAndLastname(Single<String> firstname, String lastname);
@InfiniteStream // Use a tailable cursor
Observable<Person> findWithTailableCursorBy();
}
```
```

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2015 the original author or authors.
* Copyright 2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.