Interface Catalog<T extends Product>

All Superinterfaces:
CrudRepository<T,Product.ProductIdentifier>, PagingAndSortingRepository<T,Product.ProductIdentifier>, Repository<T,Product.ProductIdentifier>, SalespointRepository<T,Product.ProductIdentifier>

@Repository public interface Catalog<T extends Product> extends SalespointRepository<T,Product.ProductIdentifier>
Repository interface for Products
Author:
Oliver Gierke
  • Method Details

    • findByCategory

      @Query("select p from #{#entityName} p\n where :category member of p.categories\n") Streamable<T> findByCategory(String category)
      Returns all Products assigned to the given category.
      Parameters:
      category -
      Returns:
    • findByAllCategories

      default Streamable<T> findByAllCategories(String... categories)
      Returns all Product that are assigned to all given categories.
      Parameters:
      categories - must not be null.
      Returns:
      Since:
      7.1
    • findByAllCategories

      @Query(" select p from #{#entityName} p\ninner join p.categories c\n where c in :categories\n group by p.id having count(p.id) = ?#{#categories.size().longValue()}\n") Streamable<T> findByAllCategories(Collection<String> categories)
      Returns all Product that are assigned to all given categories.
      Parameters:
      categories - must not be null.
      Returns:
      Since:
      7.1
    • findByAnyCategory

      default Streamable<T> findByAnyCategory(String... categories)
      Returns all Products 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\n join p.categories c\n where c in :categories\n") Streamable<T> findByAnyCategory(Collection<String> categories)
      Returns all Products that are assigned to any of the given categories.
      Parameters:
      categories - must not be null.
      Returns:
      Since:
      7.1
    • findByName

      Streamable<T> findByName(String name)
      Returns the Products with the given name.
      Parameters:
      name -
      Returns: