package org.springframework.data.mongodb.examples.music;
import java.util.List;
import org.bson.types.ObjectId;
import org.springframework.data.querydsl.QueryDslPredicateExecutor;
import org.springframework.data.repository.CrudRepository;
/**
* Simple repository interface to manage {@link Album} instances.
*
* @author Oliver Gierke
*/
public interface AlbumRepository extends CrudRepository<Album, ObjectId>, QueryDslPredicateExecutor<Album> {
/**
* Queries {@link Album}s by filtering on {@code tracks.name}.
*
* @param name
* @return
*/
List<Album> findByTracksName(String name);
/**
* Returns all {@link Album} with a {@link Track} title like the given
* parameter.
*
* @param name
* @return
*/
List<Album> findByTracksNameLike(String name);
/**
* Returns all {@link Album}s with a {@link Track} having a rating greater
* than the given one.
*
* @param rating
* @return
*/
List<Album> findByTracksRatingGreaterThan(Stars rating);
}