From 2e2e53beb18ec52c1380612f07dd6462024232e2 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Wed, 19 Feb 2014 14:47:12 +0100 Subject: [PATCH] DATACMNS-442 - Improved documentation to mention @NoRepositoryBean. --- src/docbkx/repositories.xml | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/docbkx/repositories.xml b/src/docbkx/repositories.xml index 392ed2348..0f9af6348 100644 --- a/src/docbkx/repositories.xml +++ b/src/docbkx/repositories.xml @@ -2,7 +2,7 @@ - Working with Spring Data Repositories + lWorking with Spring Data Repositories The goal of Spring Data repository abstraction is to significantly reduce the amount of boilerplate code required to implement data access @@ -216,23 +216,21 @@ Page<User> users = repository.findAll(new PageRequest(1, 20));PagingAndSortingRepository. Alternatively, if you do not want to extend Spring Data interfaces, you can also annotate your repository interface with - @RepositoryDefinition. - Extending CrudRepository exposes a - complete set of methods to manipulate your entities. If you prefer to - be selective about the methods being exposed, simply copy the ones you - want to expose from CrudRepository into - your domain repository. + @RepositoryDefinition. Extending + CrudRepository exposes a complete set + of methods to manipulate your entities. If you prefer to be selective + about the methods being exposed, simply copy the ones you want to + expose from CrudRepository into your + domain repository. Selectively exposing CRUD methods - interface MyBaseRepository<T, ID extends Serializable> extends Repository<T, ID> { + @NoRepositoryBean +interface MyBaseRepository<T, ID extends Serializable> extends Repository<T, ID> { + T findOne(ID id); + T save(T entity); } @@ -253,6 +251,13 @@ interface UserRepository extends MyBaseRepository<User, Long> { users, and find single ones by id, as well as triggering a query to find Users by their email address. + + + Note, that the intermediate repository interface is annotated + with @NoRepositoryBean. Make sure you + add that annotation to all repository interfaces that Spring Data + should not create instances for at runtime. +