Created
May 8, 2015 11:55
-
-
Save reecefowell/2fd272005345f1f2e55c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Copyright 2008-2011 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. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
package org.springframework.data.repository; | |
import java.io.Serializable; | |
/** | |
* Interface for generic CRUD operations on a repository for a specific type. | |
* | |
* @author Oliver Gierke | |
* @author Eberhard Wolff | |
*/ | |
@NoRepositoryBean | |
public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> { | |
/** | |
* Saves a given entity. Use the returned instance for further operations as the save operation might have changed the | |
* entity instance completely. | |
* | |
* @param entity | |
* @return the saved entity | |
*/ | |
<S extends T> S save(S entity); | |
/** | |
* Saves all given entities. | |
* | |
* @param entities | |
* @return the saved entities | |
* @throws IllegalArgumentException in case the given entity is (@literal null}. | |
*/ | |
<S extends T> Iterable<S> save(Iterable<S> entities); | |
/** | |
* Retrieves an entity by its id. | |
* | |
* @param id must not be {@literal null}. | |
* @return the entity with the given id or {@literal null} if none found | |
* @throws IllegalArgumentException if {@code id} is {@literal null} | |
*/ | |
T findOne(ID id); | |
/** | |
* Returns whether an entity with the given id exists. | |
* | |
* @param id must not be {@literal null}. | |
* @return true if an entity with the given id exists, {@literal false} otherwise | |
* @throws IllegalArgumentException if {@code id} is {@literal null} | |
*/ | |
boolean exists(ID id); | |
/** | |
* Returns all instances of the type. | |
* | |
* @return all entities | |
*/ | |
Iterable<T> findAll(); | |
/** | |
* Returns all instances of the type with the given IDs. | |
* | |
* @param ids | |
* @return | |
*/ | |
Iterable<T> findAll(Iterable<ID> ids); | |
/** | |
* Returns the number of entities available. | |
* | |
* @return the number of entities | |
*/ | |
long count(); | |
/** | |
* Deletes the entity with the given id. | |
* | |
* @param id must not be {@literal null}. | |
* @throws IllegalArgumentException in case the given {@code id} is {@literal null} | |
*/ | |
void delete(ID id); | |
/** | |
* Deletes a given entity. | |
* | |
* @param entity | |
* @throws IllegalArgumentException in case the given entity is (@literal null}. | |
*/ | |
void delete(T entity); | |
/** | |
* Deletes the given entities. | |
* | |
* @param entities | |
* @throws IllegalArgumentException in case the given {@link Iterable} is (@literal null}. | |
*/ | |
void delete(Iterable<? extends T> entities); | |
/** | |
* Deletes all entities managed by the repository. | |
*/ | |
void deleteAll(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment