diff --git a/README.md b/README.md index bfee187f..3129fa02 100644 --- a/README.md +++ b/README.md @@ -29,11 +29,11 @@ We have separate folders for the samples of individual modules: * `java8` - Example of how to use Spring Data MongoDB with Java 8 date time types as well as the usage of `Optional` as return type for repository methods. Note, this project requires to be build with JDK 8. * `kotlin` - Example for using Cassandra with MongoDB. * `query-by-example` - Example project showing usage of Query by Example with MongoDB. -* `querydsl` - Example project showing sync/reactive [Querydsl](https://github.com/querydsl/querydsl) support for MongoDB. +* `querydsl` - Example project showing imperative and reactive [Querydsl](https://github.com/querydsl/querydsl) support for MongoDB. * `reactive` - Example project to show reactive template and repository support. * `security` - Example project showing usage of Spring Security with MongoDB. * `text-search` - Example project showing usage of MongoDB text search feature. -* `transactions` - Example project for synchronous and reactive MongoDB 4.0 transaction support. +* `transactions` - Example project for imperative and reactive MongoDB 4.0 transaction support. ## Spring Data REST diff --git a/mongodb/querydsl/README.md b/mongodb/querydsl/README.md index 6d2082bf..acbaf13c 100644 --- a/mongodb/querydsl/README.md +++ b/mongodb/querydsl/README.md @@ -7,13 +7,13 @@ Spring Data integrates with Querydsl via `QuerydslPredicateExecutor` and its rea **NOTE**: You may have to run `mvn compile` to generate the required `Q` classes first. -## Sync +## Imperative ```java -interface SyncCustomerRepository +interface CustomerQuerydslRepository extends CrudRepository, QuerydslPredicateExecutor { } -@Autowired SyncCustomerRepository repository; +@Autowired CustomerQuerydslRepository repository; // ... @@ -23,10 +23,10 @@ List result = repository.findAll(QCustomer.customer.lastname.eq("Matth ## Reactive ```java -interface ReactiveCustomerRepository +interface ReactiveCustomerQuerydslRepository extends ReactiveCrudRepository, ReactiveQuerydslPredicateExecutor { } -@Autowired ReactiveCustomerRepository repository; +@Autowired ReactiveCustomerQuerydslRepository repository; // ... diff --git a/mongodb/querydsl/src/main/java/example/springdata/mongodb/sync/ApplicationConfiguration.java b/mongodb/querydsl/src/main/java/example/springdata/mongodb/imperative/ApplicationConfiguration.java similarity index 95% rename from mongodb/querydsl/src/main/java/example/springdata/mongodb/sync/ApplicationConfiguration.java rename to mongodb/querydsl/src/main/java/example/springdata/mongodb/imperative/ApplicationConfiguration.java index eea5a9ed..36c8c923 100644 --- a/mongodb/querydsl/src/main/java/example/springdata/mongodb/sync/ApplicationConfiguration.java +++ b/mongodb/querydsl/src/main/java/example/springdata/mongodb/imperative/ApplicationConfiguration.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package example.springdata.mongodb.sync; +package example.springdata.mongodb.imperative; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/mongodb/querydsl/src/main/java/example/springdata/mongodb/sync/CustomerQuerydslRepository.java b/mongodb/querydsl/src/main/java/example/springdata/mongodb/imperative/CustomerQuerydslRepository.java similarity index 95% rename from mongodb/querydsl/src/main/java/example/springdata/mongodb/sync/CustomerQuerydslRepository.java rename to mongodb/querydsl/src/main/java/example/springdata/mongodb/imperative/CustomerQuerydslRepository.java index 7d6a22c9..6dc8d3c9 100644 --- a/mongodb/querydsl/src/main/java/example/springdata/mongodb/sync/CustomerQuerydslRepository.java +++ b/mongodb/querydsl/src/main/java/example/springdata/mongodb/imperative/CustomerQuerydslRepository.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package example.springdata.mongodb.sync; +package example.springdata.mongodb.imperative; import example.springdata.mongodb.Customer; diff --git a/mongodb/querydsl/src/test/java/example/springdata/mongodb/sync/CustomerRepositoryTests.java b/mongodb/querydsl/src/test/java/example/springdata/mongodb/imperative/CustomerRepositoryTests.java similarity index 97% rename from mongodb/querydsl/src/test/java/example/springdata/mongodb/sync/CustomerRepositoryTests.java rename to mongodb/querydsl/src/test/java/example/springdata/mongodb/imperative/CustomerRepositoryTests.java index cd9b75dd..0d5f9902 100644 --- a/mongodb/querydsl/src/test/java/example/springdata/mongodb/sync/CustomerRepositoryTests.java +++ b/mongodb/querydsl/src/test/java/example/springdata/mongodb/imperative/CustomerRepositoryTests.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package example.springdata.mongodb.sync; +package example.springdata.mongodb.imperative; import static org.assertj.core.api.Assertions.*; @@ -23,6 +23,7 @@ import example.springdata.mongodb.QCustomer; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.mongodb.core.MongoOperations; diff --git a/mongodb/querydsl/src/test/java/example/springdata/mongodb/reactive/ReactiveCustomerRepositoryTests.java b/mongodb/querydsl/src/test/java/example/springdata/mongodb/reactive/ReactiveCustomerRepositoryTests.java index 078db80f..9c3e9640 100644 --- a/mongodb/querydsl/src/test/java/example/springdata/mongodb/reactive/ReactiveCustomerRepositoryTests.java +++ b/mongodb/querydsl/src/test/java/example/springdata/mongodb/reactive/ReactiveCustomerRepositoryTests.java @@ -21,9 +21,12 @@ import example.springdata.mongodb.Customer; import example.springdata.mongodb.QCustomer; import reactor.test.StepVerifier; +import java.util.Arrays; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.mongodb.core.MongoOperations; @@ -50,9 +53,7 @@ public class ReactiveCustomerRepositoryTests { oliver = new Customer("Oliver August", "Matthews"); carter = new Customer("Carter", "Beauford"); - repository.save(dave).then().as(StepVerifier::create).verifyComplete(); - repository.save(oliver).then().as(StepVerifier::create).verifyComplete(); - repository.save(carter).then().as(StepVerifier::create).verifyComplete(); + repository.saveAll(Arrays.asList(dave, oliver, carter)).then().as(StepVerifier::create).verifyComplete(); } @Test diff --git a/mongodb/transactions/src/main/java/example/springdata/mongodb/sync/ProcessRepository.java b/mongodb/transactions/src/main/java/example/springdata/mongodb/imperative/ProcessRepository.java similarity index 94% rename from mongodb/transactions/src/main/java/example/springdata/mongodb/sync/ProcessRepository.java rename to mongodb/transactions/src/main/java/example/springdata/mongodb/imperative/ProcessRepository.java index 5ecfeb31..696ba54a 100644 --- a/mongodb/transactions/src/main/java/example/springdata/mongodb/sync/ProcessRepository.java +++ b/mongodb/transactions/src/main/java/example/springdata/mongodb/imperative/ProcessRepository.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package example.springdata.mongodb.sync; +package example.springdata.mongodb.imperative; import example.springdata.mongodb.Process; diff --git a/mongodb/transactions/src/main/java/example/springdata/mongodb/sync/TransitionService.java b/mongodb/transactions/src/main/java/example/springdata/mongodb/imperative/TransitionService.java similarity index 98% rename from mongodb/transactions/src/main/java/example/springdata/mongodb/sync/TransitionService.java rename to mongodb/transactions/src/main/java/example/springdata/mongodb/imperative/TransitionService.java index 40adb65d..73b8e772 100644 --- a/mongodb/transactions/src/main/java/example/springdata/mongodb/sync/TransitionService.java +++ b/mongodb/transactions/src/main/java/example/springdata/mongodb/imperative/TransitionService.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package example.springdata.mongodb.sync; +package example.springdata.mongodb.imperative; import example.springdata.mongodb.Process; import example.springdata.mongodb.State; diff --git a/mongodb/transactions/src/test/java/example/springdata/mongodb/sync/TransitionServiceTests.java b/mongodb/transactions/src/test/java/example/springdata/mongodb/imperative/TransitionServiceTests.java similarity index 97% rename from mongodb/transactions/src/test/java/example/springdata/mongodb/sync/TransitionServiceTests.java rename to mongodb/transactions/src/test/java/example/springdata/mongodb/imperative/TransitionServiceTests.java index e4461b87..ec489c5d 100644 --- a/mongodb/transactions/src/test/java/example/springdata/mongodb/sync/TransitionServiceTests.java +++ b/mongodb/transactions/src/test/java/example/springdata/mongodb/imperative/TransitionServiceTests.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package example.springdata.mongodb.sync; +package example.springdata.mongodb.imperative; import example.springdata.mongodb.Process; import example.springdata.mongodb.State; @@ -35,7 +35,6 @@ import org.springframework.data.mongodb.MongoTransactionManager; import org.springframework.data.mongodb.config.AbstractMongoConfiguration; import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement;