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
Product
s- Author:
- Oliver Gierke
-
Method Summary
Modifier and Type Method Description default Streamable<T>
findByAllCategories(String... categories)
Returns allProduct
that are assigned to all given categories.Streamable<T>
findByAllCategories(Collection<String> categories)
Returns allProduct
that are assigned to all given categories.default Streamable<T>
findByAnyCategory(String... categories)
Returns allProduct
s that are assigned to any of the given categories.Streamable<T>
findByAnyCategory(Collection<String> categories)
Returns allProduct
s that are assigned to any of the given categories.Streamable<T>
findByCategory(String category)
Returns allProduct
s assigned to the given category.Streamable<T>
findByName(String name)
Returns theProduct
s 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 allProduct
s assigned to the given category.- Parameters:
category
-- Returns:
-
findByAllCategories
Returns allProduct
that 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 allProduct
that are assigned to all given categories.- Parameters:
categories
- must not be null.- Returns:
- Since:
- 7.1
-
findByAnyCategory
Returns allProduct
s 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 allProduct
s that are assigned to any of the given categories.- Parameters:
categories
- must not be null.- Returns:
- Since:
- 7.1
-
findByName
Returns theProduct
s with the given name.- Parameters:
name
-- Returns:
-