Package org.salespointframework.catalog
Interface Catalog<T extends Product>
- All Superinterfaces:
CrudRepository<T,ProductIdentifier>,Repository<T,ProductIdentifier>,SalespointRepository<T,ProductIdentifier>
@Repository public interface Catalog<T extends Product> extends SalespointRepository<T,ProductIdentifier>
Repository interface for
Products- Author:
- Oliver Gierke
-
Method Summary
Modifier and Type Method Description default Streamable<T>findByAllCategories(String... categories)Returns allProductthat are assigned to all given categories.Streamable<T>findByAllCategories(Collection<String> categories)Returns allProductthat are assigned to all given categories.default Streamable<T>findByAnyCategory(String... categories)Returns allProducts that are assigned to any of the given categories.Streamable<T>findByAnyCategory(Collection<String> categories)Returns allProducts that are assigned to any of the given categories.Streamable<T>findByCategory(String category)Returns allProducts assigned to the given category.Streamable<T>findByName(String name)Returns theProducts with the given name.Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteById, existsById, findAllById, findById, save, saveAll
-
Method Details
-
findByCategory
@Query("select p from #{#entityName} p where :category member of p.categories") Streamable<T> findByCategory(String category)Returns allProducts assigned to the given category.- Parameters:
category-- Returns:
-
findByAllCategories
Returns allProductthat are assigned to all given categories.- Parameters:
categories- must not be null.- Returns:
- Since:
- 7.1
-
findByAllCategories
@Query("select p from #{#entityName} p where (select count(c.id) from #{#entityName} p2 inner join p2.categories c where p2.id = p.id and c.id in :categories) = ?#{#categories.size().longValue()}") Streamable<T> findByAllCategories(Collection<String> categories)Returns allProductthat are assigned to all given categories.- Parameters:
categories- must not be null.- Returns:
- Since:
- 7.1
-
findByAnyCategory
Returns allProducts that are assigned to any of the given categories.- Parameters:
categories- must not be null.- Returns:
- Since:
- 7.1
-
findByAnyCategory
@Query("select p from #{#entityName} p join p.categories c where c in :categories") Streamable<T> findByAnyCategory(Collection<String> categories)Returns allProducts that are assigned to any of the given categories.- Parameters:
categories- must not be null.- Returns:
- Since:
- 7.1
-
findByName
Returns theProducts with the given name.- Parameters:
name-- Returns:
-