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>

@Repository public interface UserRepository extends org.springframework.data.jpa.repository.JpaRepository<UtenteEntity, UtenteID>
Repository per la gestione della persistenza dell'entità 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 Type
    Method
    Description
    Recupera la lista di tutti gli utenti appartenenti a una specifica azienda, escludendo un utente specifico (solitamente l'utente corrente).
    Recupera un'istanza di UtenteEntity basandosi sull'indirizzo email.
    int
    findMaxIdByAzienda(int idAzienda)
    Trova il valore massimo attuale dell'ID Utente all'interno di una specifica 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, save

    Methods inherited from interface org.springframework.data.jpa.repository.JpaRepository

    deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlush

    Methods inherited from interface org.springframework.data.repository.ListCrudRepository

    findAll, findAllById, saveAll

    Methods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository

    findAll

    Methods inherited from interface org.springframework.data.repository.PagingAndSortingRepository

    findAll

    Methods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor

    count, exists, findAll, findBy, findOne
  • Method Details

    • findByEmail

      Optional<UtenteEntity> findByEmail(String email)
      Recupera un'istanza di UtenteEntity basandosi 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 Optional contenente 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 restituisce null), il metodo ritorni 0 invece 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

      List<UtenteEntity> getAllByAziendaIs(AziendaEntity azienda)
      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 UtenteEntity appartenenti all'azienda, escluso l'utente con l'ID fornito.