Interface EventoRepository
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<EventoEntity, EventoID>, org.springframework.data.jpa.repository.JpaRepository<EventoEntity, EventoID>, org.springframework.data.repository.ListCrudRepository<EventoEntity, EventoID>, org.springframework.data.repository.ListPagingAndSortingRepository<EventoEntity, EventoID>, org.springframework.data.repository.PagingAndSortingRepository<EventoEntity, EventoID>, org.springframework.data.repository.query.QueryByExampleExecutor<EventoEntity>, org.springframework.data.repository.Repository<EventoEntity, EventoID>
EventoEntity.
Estende JpaRepository tipizzato con la chiave composta EventoID.
Fornisce query custom JPQL per la gestione di partecipazioni e lookup specifici per tenant (Azienda).
- Since:
- 1.2.0
- Version:
- 1.5.0
- Author:
- Modulink Team
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoiddeleteAllByAzienda(AziendaEntity azienda) Elimina massivamente tutti gli eventi di un'azienda.findAllByUtente(UtenteEntity utente) Recupera tutti gli eventi rilevanti per un determinato utente, sia come creatore che come partecipante.findByAzienda(AziendaEntity azienda) Recupera tutti gli eventi associati a una specifica azienda.findMaxIdByAzienda(AziendaEntity azienda) Recupera l'entità evento con l'identificativo localeid_eventopiù alto per una data 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
-
findByAzienda
Recupera tutti gli eventi associati a una specifica azienda.Metodo derivato dalla naming convention di Spring Data JPA. Esegue una query filtrata sulla colonna Foreign Key verso
AziendaEntity.- Parameters:
azienda- L'entità azienda target.- Returns:
- Lista di eventi appartenenti all'azienda.
- Since:
- 1.2.0
-
findAllByUtente
@Query("SELECT DISTINCT e FROM EventoEntity e LEFT JOIN PartecipazioneEntity p ON p.evento = e WHERE p.utente = :utente OR e.creatore = :utente") @Transactional List<EventoEntity> findAllByUtente(@Param("utente") UtenteEntity utente) Recupera tutti gli eventi rilevanti per un determinato utente, sia come creatore che come partecipante.Utilizza una query JPQL custom con
LEFT JOINesplicita sull'entitàPartecipazioneEntityper includere eventi a cui l'utente partecipa, unendo i risultati (in OR logico) con gli eventi creati dall'utente stesso. La clausolaDISTINCTrimuove duplicati nel caso un utente sia sia creatore che partecipante.- Parameters:
utente- L'utente per cui cercare gli eventi.- Returns:
- Lista di eventi correlati all'utente.
- Since:
- 1.4.0
-
findMaxIdByAzienda
@Query("SELECT e FROM EventoEntity e WHERE e.azienda = :azienda AND e.id_evento = (SELECT MAX(e2.id_evento) FROM EventoEntity e2 WHERE e2.azienda = :azienda)") EventoEntity findMaxIdByAzienda(@Param("azienda") AziendaEntity azienda) Recupera l'entità evento con l'identificativo localeid_eventopiù alto per una data azienda.Utilizzato per determinare il prossimo ID disponibile nella sequenza locale. La query annidata seleziona il MAX(id_evento) e la query esterna recupera l'intera entità corrispondente.
- Parameters:
azienda- L'azienda contesto della query.- Returns:
- L'entità
EventoEntitycon ID massimo, oppurenullse nessun evento esiste per l'azienda. - Since:
- 1.2.0
-
deleteAllByAzienda
Elimina massivamente tutti gli eventi di un'azienda.Utile per operazioni di pulizia o dismissione tenant.
- Parameters:
azienda- L'azienda i cui eventi devono essere rimossi.- Since:
- 1.2.0
-