public class JpaDao extends Object implements JpaDaoAPI
Modifier and Type | Field and Description |
---|---|
protected Map<Class<?>,EntityInfo> |
entitiesMap |
Constructor and Description |
---|
JpaDao() |
Modifier and Type | Method and Description |
---|---|
String |
buildConnectionPath(String appPath)
Retourne le chemin absolu où se trouve la base de données.
|
Properties |
buildConnectionProperties(String dbDriver,
String dbUrl,
String dbUser,
String dbPwd)
Crée un objet avec les propriétés de la connexion.
|
void |
clear()
Supprime tout objet encore managé par JPA
(normalement, cette méthode ne devrait JAMAIS être appelée).
|
void |
clearCache()
Supprime le contenu du cache JPA
(normalement, cette méthode ne devrait JAMAIS être appelée).
|
void |
connect(String pu)
Connexion à une persistence unit JPA.
|
void |
connect(String pu,
Optional<Properties> props)
Connexion à une persistence unit JPA en surchargeant avec une série
de propriétés spécifiées.
|
long |
count(Class<?> cl)
Pour la classe-entité spécifiée, retourne le nombre total d'objets.
|
long |
count(Class<?> cl,
String attr,
Object value)
Pour la classe-entité spécifiée, retourne le nombre d'objets filtrés
d'après un seul critère fourni (propriété et valeur).
|
long |
count(Search search)
D'après la requête définie par un objet search, trouve le nombre
d'éléments.
|
<E> int |
create(E e)
Ajoute un objet dans la persistance.
|
int |
delete(Class<?> cl,
Object pk)
Pour la classe-entité spécifiée, supprime un objet de la persistance
d'après sa PK.
|
int |
deleteAll(Class<?> cl)
Pour la classe-entité spécifiée, efface tous les objets.
|
int |
deleteAll(String tenantName,
int tenantId,
String... tables)
Permet d'effacer le contenu global d'une liste de tables d'après
un tenant spécifié avec son nom et sa valeur.
|
<E> void |
detach(E e)
Détache un objet de la persistence JPA.
|
<E> void |
detachList(List<E> list)
Détache tous les objets managés par JPA (liste en entrée-sortie).
|
void |
disconnect()
Se déconnecte au besoin si un entity manager existe.
|
int |
executeCommand(String sql)
Exécute une commande SQL native pour une
mise à jour (insert/update) ou un effacement (delete).
|
int |
executeScript(String sqlScriptFileName,
Object... objects)
Exécute un script SQL contenu dans un fichier.
|
boolean |
exists(Class<?> cl,
Object pk)
Pour la classe-entité spécifiée, retourne VRAI si un objet existe
dans la persistance.
|
<E> List<E> |
getAggregateList(Search search)
Permet de récupérer une liste d'agrégats de données
composés de colonnes préchoisies de type Field.
|
<E> List<E> |
getAggregateList(Search2 search)
Permet de récupérer une liste d'agrégats de données
composés de colonnes préchoisies.
|
String |
getConnectionProperty(String prop)
Retourne une propriété de connexion mémorisée dans l'entity Manager Factory.
|
String |
getConnectionURL()
Retourne d'une manière simplifiée l'URL qui accède à une BD.
|
Map<Class<?>,EntityInfo> |
getEntitiesMap()
Permet de retourner une map avec la liste des classes-entités
gérées par l'EntityManager.
|
List<Field> |
getEntityFields(Class<?> cl)
Pour la classe-entité spécifiée, retourne par introspection une liste des
attributs présents dans cette classe.
|
EntityInfo |
getEntityInfo(Class<?> cl)
Pour la classe-entité spécifiée, récupère des informations importantes :
classe, nom et type de la PK, table de séquence utilisée oui/non.
|
javax.persistence.EntityManager |
getEntityManager()
Retourne l'entityManager stocké dans la couche dao.
|
int |
getIntValue(Search search)
Retourne une valeur entière unique de type Integer grâce à une requête de type Search.
|
<E> List<E> |
getList(Class<?> cl,
String sortFields)
Pour la classe-entité spécifiée, récupère une liste d'objets triés.
|
<E> List<E> |
getList(Class<?> cl,
String attr,
Object value)
Pour la classe-entité spécifiée, récupère une liste d'objets filtrés
et non triés, ceci d'après un seul critère basé sur un attribut de la
classe et une valeur pour cet attribut.
|
<E> List<E> |
getList(Class<?> cl,
String attr,
Object value,
String sortFields)
Pour la classe-entité spécifiée, récupère une liste d'objets filtrés et
triés, ceci d'après un seul critère basé sur une propriété et sa valeur.
|
<E> List<E> |
getList(Search search)
Pour la classe-entité spécifiée, récupère une liste d'objets en fournissant
encore un objet de type "Search" qui permet de stocker tous les paramètres
nécessaires pour une recherche ciblée :
- choix des propriétés à récupérer (fields); - conditions de recherche (filters); - critères de tri (sorts); - premier objet à récupérer (firstResult) - limitation du nombre d'objets (maxResults) |
<E> List<E> |
getList(Search2 search)
Récupère une liste d'objets en fournissant un objet de type Search2.
|
<E> List<E> |
getList(String sql,
Object[] params)
Récupère une liste d'objets en effectuant une requête SQL native.
|
<E> List<E> |
getList(String sql,
Object[] params,
String rsMapping)
Récupère une liste d'objets en effectuant une requête SQL native.
|
long |
getLongValue(Search search)
Retourne une valeur entière unique de type Long grâce à une requête de type Search.
|
int |
getMaxIntValue(Class<?> cl,
String fieldName)
Pour la classe-entité spécifiée et un champ donné,
retourne la valeur entière maximale de ce champ.
|
int |
getMinIntValue(Class<?> cl,
String fieldName)
Pour la classe-entité spécifiée et un champ donné,
retourne la valeur entière minimale de ce champ.
|
Object |
getPkMax(Class<?> cl)
Pour la classe-entité spécifiée, retourne la valeur maximale de la PK
actuellement utilisée dans la table sous-jacente.
|
String |
getPkName(Class<?> cl)
Pour la classe-entité spécifiée, retourne le nom de la PK.
|
Type |
getPkType(Class<?> cl)
Pour la classe-entité spécifiée, retourne le type de la PK.
|
<E> E |
getSingleResult(Class<?> cl,
String attr,
Object value)
Retrouve un objet unique d'une classe-entité donnée avec un critère
de recherche basée sur une égalité d'un attribut de cette classe avec
une valeur spécifiée.
|
<E> E |
getSingleResult(Search search)
Retrouve un objet unique d'après un objet Search (spécification de critères
de recherche multiples).
|
<E> E |
getSingleResult(String jpql,
Object[] params)
Méthode de plus bas niveau pour retrouver un objet unique
d'après une requête jqpl et un tableau de valeurs paramètres
|
Transaction |
getTransaction()
Retourne un objet représentant l'état d'une transaction actuelle
sur l'entity manager mémorisé.
|
String |
getVersion()
Retourne la version courante de cette couche d'intégration DAO-JPA.
|
<E> int |
insertList(Class<?> cl,
List<E> list,
boolean resetPk)
Pour la classe-entité spécifiée, insert une liste globale d'objets.
|
boolean |
isConnected()
Détermine si une connexion existe avec un entity-manager valide.
|
<E> boolean |
isMerged(E e)
Retourne TRUE si l'objet passé en paramètre est managé par JPA.
|
<E> boolean |
isMerged(List<E> list)
Retourne TRUE si le premier élément d'une liste d'objets est managé par JPA
(sous-entendu les autres objets aussi).
|
<E> void |
merge(E e)
Manage à nouveau par JPA un objet détaché.
|
<E> E |
read(Class<?> cl,
Object pk,
boolean refresh,
boolean detach)
Pour la classe-entité spécifiée, lit un objet d'après sa PK.
|
<E> void |
refresh(E e)
Rafraîchit toutes les données d'un entity-bean (dont les listes 1..N liées).
|
<E> void |
refreshList(List<E> list)
Rafraichit tous les objets d'une liste d'objets en mémoire.
|
void |
setEntityManager(javax.persistence.EntityManager em)
Mémorise l'entity manager provenant d'une couche supérieure.
|
<E> int |
update(E e)
Modifie un objet dans la persistance.
|
<E> int[] |
updateList(Class<?> cl,
List<E> list)
Pour la classe-entité spécifiée, met à jour une liste globale d'objets.
|
protected Map<Class<?>,EntityInfo> entitiesMap
public String getVersion()
getVersion
in interface JpaDaoAPI
public void connect(String pu, Optional<Properties> props) throws JpaException
connect
in interface JpaDaoAPI
pu
- un nom d'unité de persistenceprops
- des propriétés sous la forme clé-valeur (optionnel)JpaException
- une exception à traiter en cas d'erreurpublic void connect(String pu) throws JpaException
connect
in interface JpaDaoAPI
pu
- un nom d'unité de persistenceJpaException
- une exception à traiter en cas d'erreurpublic boolean isConnected()
isConnected
in interface JpaDaoAPI
public void disconnect()
disconnect
in interface JpaDaoAPI
public Properties buildConnectionProperties(String dbDriver, String dbUrl, String dbUser, String dbPwd)
buildConnectionProperties
in interface JpaDaoAPI
dbDriver
- pilote JDBCdbUrl
- URL vers la base de donnéesdbUser
- nom d'utlisateur de la base de donnéesdbPwd
- mot de passe pour accéder à la basepublic String buildConnectionPath(String appPath)
buildConnectionPath
in interface JpaDaoAPI
appPath
- le chemin vers l'application appelantepublic String getConnectionProperty(String prop)
getConnectionProperty
in interface JpaDaoAPI
prop
- le nom de la propriété à extrairepublic String getConnectionURL()
getConnectionURL
in interface JpaDaoAPI
public javax.persistence.EntityManager getEntityManager()
getEntityManager
in interface JpaDaoAPI
public void setEntityManager(javax.persistence.EntityManager em)
setEntityManager
in interface JpaDaoAPI
em
- un objet EntityManager normalement ouvert !public Transaction getTransaction()
getTransaction
in interface JpaDaoAPI
public <E> int create(E e)
public <E> E read(Class<?> cl, Object pk, boolean refresh, boolean detach)
read
in interface JpaDaoAPI
E
- une classe-entité génériquecl
- une classe entité managée par JPApk
- une pk pour identifier l'objet à lirerefresh
- TRUE pour rafraichir l'objet après la lecturedetach
- TRUE pour rendre l'objet détaché après la lecturepublic <E> int update(E e)
public int delete(Class<?> cl, Object pk)
public boolean exists(Class<?> cl, Object pk)
public <E> E getSingleResult(String jpql, Object[] params)
getSingleResult
in interface JpaDaoAPI
E
- une classe-entité génériquejpql
- une requête jpql déjà préparée, manque juste les paramètresparams
- un tableau de valeurs pour les paramètres de la requêtepublic <E> E getSingleResult(Class<?> cl, String attr, Object value)
getSingleResult
in interface JpaDaoAPI
E
- une classe-entité génériquecl
- une classe entité managée par JPAattr
- un nom d'attribut de la classe comme critère de recherchevalue
- une valeur pour le critère de recherchepublic <E> E getSingleResult(Search search)
getSingleResult
in interface JpaDaoAPI
E
- une classe-entité génériquesearch
- un objet pour spécifier les critères de la recherchepublic <E> List<E> getList(Class<?> cl, String sortFields)
public <E> List<E> getList(Class<?> cl, String attr, Object value, String sortFields)
getList
in interface JpaDaoAPI
E
- une classe-entité génériquecl
- une classe entité managée par JPAattr
- un nom d'attribut comme critère de filtragevalue
- une valeur pour le critère de filtragesortFields
- une liste des attributs de tripublic <E> List<E> getList(Class<?> cl, String attr, Object value)
public <E> List<E> getList(Search search)
public <E> List<E> getList(Search2 search)
public <E> List<E> getList(String sql, Object[] params, String rsMapping)
public <E> List<E> getList(String sql, Object[] params)
public <E> List<E> getAggregateList(Search search)
getAggregateList
in interface JpaDaoAPI
E
- une classe-entité génériquesearch
- un objet pour spécifier les critères de la recherchepublic <E> List<E> getAggregateList(Search2 search)
getAggregateList
in interface JpaDaoAPI
E
- une classe-entité génériquesearch
- un objet Search2 pour spécifier les critères de la recherchepublic int executeCommand(String sql)
executeCommand
in interface JpaDaoAPI
sql
- la requête SQL nativepublic int executeScript(String sqlScriptFileName, Object... objects)
executeScript
in interface JpaDaoAPI
sqlScriptFileName
- un nom de fichier script avec des commandes sqlobjects
- tableau facultatif avec 2 objets (ancien nom de la BD, nouveau nom)public int deleteAll(Class<?> cl)
public int deleteAll(String tenantName, int tenantId, String... tables)
public <E> int insertList(Class<?> cl, List<E> list, boolean resetPk)
insertList
in interface JpaDaoAPI
E
- une classe-entité génériquecl
- une classe entité managée par JPAlist
- une liste d'objets à insérer dans la persistanceresetPk
- TRUE s'il faut reconstruire les PKpublic <E> int[] updateList(Class<?> cl, List<E> list)
updateList
in interface JpaDaoAPI
E
- un type générique pour une classe-entitécl
- une classe entité managée par JPAlist
- une liste d'objets à modifier (ou à ajouter) dans la persistancepublic <E> void detachList(List<E> list)
detachList
in interface JpaDaoAPI
E
- une classe-entité génériquelist
- une liste d'objets managés par JPA, puis non managéspublic <E> void refreshList(List<E> list)
refreshList
in interface JpaDaoAPI
E
- une classe-entité génériquelist
- une liste d'objets managés par JPApublic int getIntValue(Search search)
getIntValue
in interface JpaDaoAPI
search
- un objet permettant le filtrage et le tri des donnéespublic long getLongValue(Search search)
getLongValue
in interface JpaDaoAPI
search
- un objet permettant le filtrage et le tri des donnéespublic long count(Class<?> cl)
public long count(Class<?> cl, String attr, Object value)
public long count(Search search)
public int getMinIntValue(Class<?> cl, String fieldName)
getMinIntValue
in interface JpaDaoAPI
cl
- une classe entité managée par JPAfieldName
- le nom du champ où récupérer la valeurpublic int getMaxIntValue(Class<?> cl, String fieldName)
getMaxIntValue
in interface JpaDaoAPI
cl
- une classe entité managée par JPAfieldName
- le nom du champ où récupérer la valeurpublic void clearCache()
clearCache
in interface JpaDaoAPI
public void clear()
public <E> void refresh(E e)
public <E> void detach(E e)
public <E> void merge(E e)
public <E> boolean isMerged(E e)
public <E> boolean isMerged(List<E> list)
public String getPkName(Class<?> cl)
public Type getPkType(Class<?> cl)
public Object getPkMax(Class<?> cl)
public EntityInfo getEntityInfo(Class<?> cl)
getEntityInfo
in interface JpaDaoAPI
cl
- une classe-entité à introspecterpublic List<Field> getEntityFields(Class<?> cl)
getEntityFields
in interface JpaDaoAPI
cl
- une classe-entité à introspecterpublic Map<Class<?>,EntityInfo> getEntitiesMap()
getEntitiesMap
in interface JpaDaoAPI
Copyright © 2025. All rights reserved.