Package model.repository
Class GenericRepository
- java.lang.Object
-
- model.repository.GenericRepository
-
- All Implemented Interfaces:
Serializable
public class GenericRepository extends Object implements Serializable
Classe che incapsula la logica CRUD di base per tutte le entità persistenti- See Also:
EntityManager
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected EntityManager
em
-
Constructor Summary
Constructors Constructor Description GenericRepository()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> List<T>
findAll(Class<T> entityClass)
Restituisce una lista tipata contenente tutte le istanze di una determinata entità di persistenza<T> T
findById(Class<T> entityClass, Object primaryKey)
Trova per chiave primaria, restituendo un'entità caricata pigramente (lazy-loaded).<T> T
findById(Class<T> entityClass, Object primaryKey, boolean loadLazily)
Trova per chiave primaria<T> T
findByNaturalId(Class<T> entityClass, Object naturalKey)
<T> T
findByNaturalId(Class<T> entityClass, Object naturalKey, boolean getReference)
<T> Long
getCount(Class<T> entityClass)
Restituisce il numero indicante la quantità di istanze di una determinata entità di persistenza<T> T
insert(T entity)
Crea un'istanza persistente e gestita (managed entity)<T> T
merge(T entity)
Unisce lo stato di una data entità allo stato nel contesto di persistenza<T> void
remove(T entity)
Rimuove l'istanza dal contesto di persistenza
-
-
-
Field Detail
-
em
protected EntityManager em
-
-
Constructor Detail
-
GenericRepository
public GenericRepository()
-
-
Method Detail
-
findById
public <T> T findById(Class<T> entityClass, Object primaryKey, boolean loadLazily)
Trova per chiave primaria- Returns:
- L'entità trovata o null se l'entità non esiste
- Throws:
IllegalArgumentException
- se la chiave primaria fornita è null o non valida per l'entità da cercare- See Also:
EntityManager.find(Class, Object)
-
findById
public <T> T findById(Class<T> entityClass, Object primaryKey)
Trova per chiave primaria, restituendo un'entità caricata pigramente (lazy-loaded). L'entità restituita viene caricata al primo accesso effettuato. Se l'istanza non esiste, viene lanciatoEntityNotFoundException
quando l'istanza viene acceduta per la prima volta.- Returns:
- L'entità caricata pigramente
- Throws:
IllegalArgumentException
- se la chiave primaria fornita è null o non valida per l'entità da cercareEntityNotFoundException
- se l'entità non può essere acceduta- See Also:
EntityManager.getReference(Class, Object)
-
findByNaturalId
public <T> T findByNaturalId(Class<T> entityClass, Object naturalKey)
-
findByNaturalId
public <T> T findByNaturalId(Class<T> entityClass, Object naturalKey, boolean getReference)
-
findAll
public <T> List<T> findAll(Class<T> entityClass)
Restituisce una lista tipata contenente tutte le istanze di una determinata entità di persistenza- Returns:
- La lista dei risultati
- Throws:
QueryTimeoutException
- In caso di timeout raggiuntoPersistenceException
-
getCount
public <T> Long getCount(Class<T> entityClass)
Restituisce il numero indicante la quantità di istanze di una determinata entità di persistenza- Returns:
- La quantità di istanze
- Throws:
QueryTimeoutException
- In caso di timeout raggiuntoPersistenceException
-
insert
public <T> T insert(T entity)
Crea un'istanza persistente e gestita (managed entity)- Parameters:
entity
- L'istanza di entità- Returns:
- L'istanza passata come parametro
- Throws:
EntityExistsException
- se l'entità esiste già- See Also:
EntityManager.persist(Object)
-
merge
public <T> T merge(T entity)
Unisce lo stato di una data entità allo stato nel contesto di persistenza- Parameters:
entity
-- Returns:
- Una copia managed dell'entità passata come parametro
- See Also:
EntityManager.merge(Object)
-
remove
public <T> void remove(T entity)
Rimuove l'istanza dal contesto di persistenza- Parameters:
entity
- L'entità managed da rimuovere- Throws:
IllegalArgumentException
- se l'entità passata non è managed
-
-