Interface ProdottoRepository
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<ProdottoEntity, ProdottoID>, org.springframework.data.jpa.repository.JpaRepository<ProdottoEntity, ProdottoID>, org.springframework.data.repository.ListCrudRepository<ProdottoEntity, ProdottoID>, org.springframework.data.repository.ListPagingAndSortingRepository<ProdottoEntity, ProdottoID>, org.springframework.data.repository.PagingAndSortingRepository<ProdottoEntity, ProdottoID>, org.springframework.data.repository.query.QueryByExampleExecutor<ProdottoEntity>, org.springframework.data.repository.Repository<ProdottoEntity, ProdottoID>
Estende JpaRepository utilizzando la chiave composta ProdottoID.
Fornisce metodi per le operazioni CRUD standard e query personalizzate per la gestione multi-tenant,
filtrando i dati in base all'azienda di appartenenza.
- Since:
- 1.2.0
- Version:
- 1.3.3
- Author:
- Modulink Team
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoiddeleteAllByAzienda(AziendaEntity azienda) Elimina massivamente tutti i prodotti associati a un'azienda.findAllByAzienda(AziendaEntity azienda) Restituisce la lista completa dei prodotti appartenenti a un'azienda.findAllCategoriesByAzienda(AziendaEntity azienda) Estrae l'elenco univoco delle categorie merceologiche utilizzate da un'azienda.findMaxByAzienda(AziendaEntity azienda) Recupera il prodotto con l'ID locale più alto per una specifica azienda.Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findById, saveMethods inherited from interface org.springframework.data.jpa.repository.JpaRepository
deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlushMethods inherited from interface org.springframework.data.repository.ListCrudRepository
findAll, findAllById, saveAllMethods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor
count, exists, findAll, findBy, findOne
-
Method Details
-
findMaxByAzienda
@Query("SELECT p FROM ProdottoEntity p WHERE p.azienda = :azienda AND p.id_prodotto = (SELECT MAX(p.id_prodotto) FROM ProdottoEntity p2 WHERE p2.azienda = :azienda)") ProdottoEntity findMaxByAzienda(@Param("azienda") AziendaEntity azienda) Recupera il prodotto con l'ID locale più alto per una specifica azienda.Questa query è fondamentale per implementare la strategia di auto-incremento manuale "per tenant". Seleziona l'entità prodotto dove l'ID corrisponde al valore massimo presente per quell'azienda.
- Parameters:
azienda- L'azienda per cui calcolare il massimo ID.- Returns:
- L'entità
ProdottoEntitycon l'ID più alto, onullse nessun prodotto è presente. - Since:
- 1.2.0
-
findAllByAzienda
Restituisce la lista completa dei prodotti appartenenti a un'azienda.Metodo derivato dalla naming convention di Spring Data JPA. Esegue una SELECT filtrata per la colonna Foreign Key
azienda.- Parameters:
azienda- L'azienda proprietaria.- Returns:
- Lista di prodotti associati all'azienda.
- Since:
- 1.2.0
-
findAllCategoriesByAzienda
@Query("SELECT DISTINCT p.categoria FROM ProdottoEntity p WHERE p.azienda = :azienda") List<String> findAllCategoriesByAzienda(AziendaEntity azienda) Estrae l'elenco univoco delle categorie merceologiche utilizzate da un'azienda.Esegue una proiezione della colonna
categoriaapplicando la clausolaDISTINCTper eliminare i duplicati. Utile per popolare filtri di ricerca o menu a tendina.- Parameters:
azienda- L'azienda di riferimento.- Returns:
- Lista di stringhe rappresentanti le categorie univoche.
- Since:
- 1.3.0
-
deleteAllByAzienda
Elimina massivamente tutti i prodotti associati a un'azienda.Utilizzato nelle procedure di disattivazione o cancellazione di un tenant. L'operazione è irreversibile.
- Parameters:
azienda- L'azienda i cui prodotti devono essere rimossi.- Since:
- 1.4.0
-