Package com.proyecto.jpa.service
Class CategoryService
java.lang.Object
com.proyecto.jpa.service.CategoryService
Servicio para la gestión de categorías (Capa de Negocio).
Implementa la lógica de negocio relacionada con las categorías de productos, coordinando las operaciones con el repositorio y aplicando reglas de negocio.
Arquitectura de 3 Capas
CategoryController (Capa de Presentación)
↓
CategoryService (Capa de Negocio) ← Esta clase
↓
CategoryRepository (Capa de Datos)
Operaciones en Cascada
Al eliminar una categoría, todos sus productos asociados se eliminan
automáticamente gracias a la configuración cascade = CascadeType.ALL
en la entidad Category.
- Since:
- 1.0.0
- Version:
- 1.0.0
- Author:
- Proyecto JPA
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionCategoryService(CategoryRepository categoryRepository) Constructor con inyección de dependencias. -
Method Summary
Modifier and TypeMethodDescriptionlongcount()Cuenta el número total de categorías.voiddeleteById(Long id) Elimina una categoría por su ID.booleanexistsByName(String name) Verifica si existe una categoría con el nombre dado.findAll()Obtiene todas las categorías del sistema.Busca una categoría por su ID.findByName(String name) Busca una categoría por su nombre.Crea o actualiza una categoría.
-
Constructor Details
-
CategoryService
Constructor con inyección de dependencias.- Parameters:
categoryRepository- repositorio de categorías
-
-
Method Details
-
findAll
Obtiene todas las categorías del sistema.- Returns:
- lista de todas las categorías
-
findById
Busca una categoría por su ID.- Parameters:
id- el ID de la categoría- Returns:
- un Optional con la categoría si existe
-
findByName
Busca una categoría por su nombre.- Parameters:
name- el nombre de la categoría- Returns:
- un Optional con la categoría si existe
-
existsByName
Verifica si existe una categoría con el nombre dado.- Parameters:
name- el nombre a verificar- Returns:
- true si existe, false en caso contrario
-
save
Crea o actualiza una categoría.Si la categoría no tiene ID, se crea una nueva. Si tiene ID, se actualiza.
- Parameters:
category- la categoría a guardar- Returns:
- la categoría guardada con su ID asignado
- Throws:
IllegalArgumentException- si la categoría es null o el nombre está vacío
-
deleteById
Elimina una categoría por su ID.Operación en Cascada: Al eliminar la categoría, todos los productos asociados se eliminarán automáticamente debido a la configuración de cascada.
- Parameters:
id- el ID de la categoría a eliminar- Throws:
IllegalArgumentException- si no existe una categoría con ese ID
-
count
public long count()Cuenta el número total de categorías.- Returns:
- el número total de categorías
-