Interface UserRepository
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<UtenteEntity, UtenteID>, org.springframework.data.jpa.repository.JpaRepository<UtenteEntity, UtenteID>, org.springframework.data.repository.ListCrudRepository<UtenteEntity, UtenteID>, org.springframework.data.repository.ListPagingAndSortingRepository<UtenteEntity, UtenteID>, org.springframework.data.repository.PagingAndSortingRepository<UtenteEntity, UtenteID>, org.springframework.data.repository.query.QueryByExampleExecutor<UtenteEntity>, org.springframework.data.repository.Repository<UtenteEntity, UtenteID>
UtenteEntity.
Questa interfaccia estende JpaRepository per fornire operazioni CRUD standard
su database relazionali. Utilizza UtenteID come tipo della chiave primaria,
riflettendo la struttura a chiave composta dell'entità.
Spring Data JPA genera automaticamente l'implementazione di questa interfaccia a runtime, riducendo la necessità di scrivere codice boilerplate per l'accesso ai dati.
- Version:
- 1.4.1
- Author:
- Modulink Team
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionfindAllByAziendaAndIdUtenteNot(AziendaEntity azienda, int idUtente) Recupera la lista di tutti gli utenti appartenenti a una specifica azienda, escludendo un utente specifico (solitamente l'utente corrente).findByEmail(String email) Recupera un'istanza diUtenteEntitybasandosi sull'indirizzo email.intfindMaxIdByAzienda(int idAzienda) Trova il valore massimo attuale dell'ID Utente all'interno di una specifica azienda.getAllByAziendaIs(AziendaEntity azienda) Recupera tutti gli utenti appartenenti ad 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
-
findByEmail
Recupera un'istanza diUtenteEntitybasandosi sull'indirizzo email.Questo è un "Query Method" derivato: Spring Data JPA analizza il nome del metodo e crea automaticamente la query SQL corrispondente (es.
SELECT * FROM Utente WHERE Email = ?). Utilizzato principalmente durante le fasi di login e recupero credenziali.- Parameters:
email- L'indirizzo email univoco dell'utente da cercare.- Returns:
- Un
Optionalcontenente l'utente se trovato, oppure un Optional vuoto se nessun utente corrisponde all'email fornita.
-
findMaxIdByAzienda
@Query("SELECT COALESCE(MAX(u.id_utente), 0) FROM UtenteEntity u WHERE u.azienda.id_azienda = :idAzienda") int findMaxIdByAzienda(@Param("idAzienda") int idAzienda) Trova il valore massimo attuale dell'ID Utente all'interno di una specifica azienda.Questo metodo è fondamentale per la strategia di generazione manuale degli ID: permette di conoscere l'ultimo ID assegnato per calcolare il successivo (
MAX + 1).La funzione JPQL
COALESCE(MAX(u.id_utente), 0)garantisce che, se l'azienda non ha ancora utenti (e quindi MAX restituiscenull), il metodo ritorni0invece di lanciare un'eccezione o restituire null.- Parameters:
idAzienda- L'ID dell'azienda di cui si vuole trovare il massimo ID utente corrente.- Returns:
- L'ID più alto presente (o 0 se l'azienda è vuota).
-
getAllByAziendaIs
Recupera tutti gli utenti appartenenti ad una specifica azienda.- Parameters:
azienda- L'entità Azienda per cui filtrare gli utenti.- Returns:
- Una lista di tutti gli utenti associati all'azienda data.
-
findAllByAziendaAndIdUtenteNot
@Query("SELECT u FROM UtenteEntity u WHERE u.azienda = :azienda AND u.id_utente <> :idUtente") List<UtenteEntity> findAllByAziendaAndIdUtenteNot(@Param("azienda") AziendaEntity azienda, @Param("idUtente") int idUtente) Recupera la lista di tutti gli utenti appartenenti a una specifica azienda, escludendo un utente specifico (solitamente l'utente corrente).- Parameters:
azienda- L'azienda di cui recuperare gli utenti.idUtente- L'ID dell'utente da escludere dalla lista.- Returns:
- Una lista di
UtenteEntityappartenenti all'azienda, escluso l'utente con l'ID fornito.
-