net.leadware.persistence.tools.core.dao.impl
Class JPAGenericDAORulesBasedImpl<T>

java.lang.Object
  extended by net.leadware.persistence.tools.core.dao.impl.JPAGenericDAORulesBasedImpl<T>
All Implemented Interfaces:
JPAGenericDAO<T>

public abstract class JPAGenericDAORulesBasedImpl<T>
extends Object
implements JPAGenericDAO<T>

Classe abstraite representant une base DAO generique compatible JPA et basee sur les annotations de validations des entites et sur les moteur de validations

Author:
Jean-Jacques ETUNÈ NGI
See Also:
Annotations
  1. {@link DAOConstraint}
Engine
  1. {@link JSR303ValidatorEngine}
  2. {@link IDAOValidator}

Field Summary
protected  Class<T> entityClass
          Classe de l'entite managee
protected  boolean postValidateReferentialConstraintOnDelete
          Etat de post-validation des contraintes referentielles en mode DELETE
protected  boolean postValidateReferentialConstraintOnSave
          Etat de post-validation des contraintes referentielles en mode SAVE
protected  boolean postValidateReferentialConstraintOnUpdate
          Etat de post-validation des contraintes referentielles en mode UPDATE
protected  boolean preValidateReferentialConstraintOnDelete
          Etat de pré-validation des contraintes referentielles en mode DELETE
protected  boolean preValidateReferentialConstraintOnSave
          Etat de pré-validation des contraintes referentielles en mode SAVE
protected  boolean preValidateReferentialConstraintOnUpdate
          Etat de pré-validation des contraintes referentielles en mode UPDATE
protected  String ROOT_ALIAS
          Alias de l'entité root
protected  boolean validateIntegrityConstraintOnSave
          Etat de validation des constraintes d'integrites en mode SAVE
protected  boolean validateIntegrityConstraintOnUpdate
          Etat de validation des constraintes d'integrites en mode UPDATE
 
Constructor Summary
JPAGenericDAORulesBasedImpl()
           
 
Method Summary
protected  void addOrders(javax.persistence.criteria.CriteriaBuilder criteriaBuilder, javax.persistence.criteria.Root<T> root, javax.persistence.criteria.CriteriaQuery<T> criteriaQuery, Map<String,OrderType> orders)
          Méthode de chargement des ordres
protected  void addPredicates(javax.persistence.criteria.CriteriaBuilder criteriaBuilder, javax.persistence.criteria.Root<T> root, javax.persistence.criteria.CriteriaQuery<?> criteriaQuery, List<Predicate> predicates)
          Méthode de chargement des prédicats
protected  void addProperties(javax.persistence.criteria.Root<T> root, javax.persistence.criteria.CriteriaQuery<T> query, Set<String> properties)
          Methode d'ajout des Proprietes a charger a la requete de recherche
protected  void addProperties(javax.persistence.criteria.Root<T> root, Set<String> properties)
          Methode d'ajout des Proprietes a charger a la requete de recherche
protected  void addQueryParameters(javax.persistence.Query query, Map<String,Object> parameters)
          Méthode d'ajout de parametres à la requete
private  javax.persistence.criteria.Path<?> buildPropertyPathForAnyType(javax.persistence.criteria.Root<T> root, String stringPath)
          Méthode de construction d'un chemin de propriété à partir de la racine
 void clean()
          Methode de nettoyage de la table de l'entité
 long count(List<Predicate> predicates)
          Methode de decompte des entites verifiant la liste de predicats
 void delete(Object entityID)
          Methode generique de suppression d'une entite JPA annotee
 void delete(Object entityID, boolean preValidateReferentialConstraint, boolean postValidateReferentialConstraint)
          Methode generique de suppression d'une entite JPA annotee
<Q> List<Q>
executeCriteria(javax.persistence.criteria.CriteriaQuery<Q> criteriaQuery, Map<String,Object> parameters)
          Méthode d'execution d'une requete de critere
 List<T> filter(List<Predicate> predicates, Map<String,OrderType> orders, Set<String> properties, int firstResult, int maxResult)
          Methode de filtre des entites d'une classe donnee en fonction des criteres de filtres donnees
 T findByPrimaryKey(String entityIDName, Object entityID, Set<String> properties)
          Methode de chargement immediat des proprietes d'une instance de classe
 T findByUniqueProperty(String propertyName, Object propertyValue, Set<String> properties)
          Methode de recherche d'une entite par une propriete unique
 T save(T entity)
          Methode generique d'enregistrement d'une entite JPA annotee
 T save(T entity, boolean validateIntegrityConstraint, boolean preValidateReferentialConstraint, boolean postValidateReferentialConstraint)
          Methode generique d'enregistrement d'une entite JPA annotee
 void setPostValidateReferentialConstraintOnDelete(boolean postValidateReferentialConstraintOnDelete)
          Méthode de mise à jour de l'Etat de post-validation des contraintes referentielles en mode DELETE
 void setPostValidateReferentialConstraintOnSave(boolean postValidateReferentialConstraintOnSave)
          Méthode de mise à jour de l'Etat de post-validation des contraintes referentielles en mode SAVE
 void setPostValidateReferentialConstraintOnUpdate(boolean postValidateReferentialConstraintOnUpdate)
          Méthode de mise à jour de l'Etat de post-validation des contraintes referentielles en mode UPDATE
 void setPreValidateReferentialConstraintOnDelete(boolean preValidateReferentialConstraintOnDelete)
          Méthode de mise à jour de l'Etat de pré-validation des contraintes referentielles en mode DELETE
 void setPreValidateReferentialConstraintOnSave(boolean preValidateReferentialConstraintOnSave)
          Méthode de mise à jour de l'Etat de pré-validation des contraintes referentielles en mode SAVE
 void setPreValidateReferentialConstraintOnUpdate(boolean preValidateReferentialConstraintOnUpdate)
          Méthode de mise à jour de l'Etat de pré-validation des contraintes referentielles en mode UPDATE
 void setValidateIntegrityConstraintOnSave(boolean validateIntegrityConstraintOnSave)
          Méthode de mise à jour de l'Etat de validation des constraintes d'integrites en mode SAVE
 void setValidateIntegrityConstraintOnUpdate(boolean validateIntegrityConstraintOnUpdate)
          Méthode de mise à jour de l'Etat de validation des constraintes d'integrites en mode UPDATE
 T update(Object id, T entity)
          Methode generique de mise a jour d'une entite JPA annotee
 T update(Object id, T entity, boolean validateIntegrityConstraint, boolean preValidateReferentialConstraint, boolean postValidateReferentialConstraint)
          Methode generique de mise a jour d'une entite JPA annotee
protected  void validateEntityIntegrityConstraint(Object entity, DAOMode mode, DAOValidatorEvaluationTime validationTime)
          Méthode de validation des contraintes d'integrités
protected  void validateEntityReferentialConstraint(Object entity, DAOMode mode, DAOValidatorEvaluationTime validationTime)
          Méthode de validation des contraintes referentielles
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.leadware.persistence.tools.core.dao.JPAGenericDAO
getEntityManager, getManagedEntityClass
 

Field Detail

entityClass

protected Class<T> entityClass
Classe de l'entite managee


ROOT_ALIAS

protected final String ROOT_ALIAS
Alias de l'entité root

See Also:
Constant Field Values

validateIntegrityConstraintOnSave

protected boolean validateIntegrityConstraintOnSave
Etat de validation des constraintes d'integrites en mode SAVE


validateIntegrityConstraintOnUpdate

protected boolean validateIntegrityConstraintOnUpdate
Etat de validation des constraintes d'integrites en mode UPDATE


preValidateReferentialConstraintOnSave

protected boolean preValidateReferentialConstraintOnSave
Etat de pré-validation des contraintes referentielles en mode SAVE


postValidateReferentialConstraintOnSave

protected boolean postValidateReferentialConstraintOnSave
Etat de post-validation des contraintes referentielles en mode SAVE


preValidateReferentialConstraintOnUpdate

protected boolean preValidateReferentialConstraintOnUpdate
Etat de pré-validation des contraintes referentielles en mode UPDATE


postValidateReferentialConstraintOnUpdate

protected boolean postValidateReferentialConstraintOnUpdate
Etat de post-validation des contraintes referentielles en mode UPDATE


preValidateReferentialConstraintOnDelete

protected boolean preValidateReferentialConstraintOnDelete
Etat de pré-validation des contraintes referentielles en mode DELETE


postValidateReferentialConstraintOnDelete

protected boolean postValidateReferentialConstraintOnDelete
Etat de post-validation des contraintes referentielles en mode DELETE

Constructor Detail

JPAGenericDAORulesBasedImpl

public JPAGenericDAORulesBasedImpl()
Method Detail

setValidateIntegrityConstraintOnSave

public void setValidateIntegrityConstraintOnSave(boolean validateIntegrityConstraintOnSave)
Description copied from interface: JPAGenericDAO
Méthode de mise à jour de l'Etat de validation des constraintes d'integrites en mode SAVE

Specified by:
setValidateIntegrityConstraintOnSave in interface JPAGenericDAO<T>

setValidateIntegrityConstraintOnUpdate

public void setValidateIntegrityConstraintOnUpdate(boolean validateIntegrityConstraintOnUpdate)
Description copied from interface: JPAGenericDAO
Méthode de mise à jour de l'Etat de validation des constraintes d'integrites en mode UPDATE

Specified by:
setValidateIntegrityConstraintOnUpdate in interface JPAGenericDAO<T>

setPreValidateReferentialConstraintOnSave

public void setPreValidateReferentialConstraintOnSave(boolean preValidateReferentialConstraintOnSave)
Description copied from interface: JPAGenericDAO
Méthode de mise à jour de l'Etat de pré-validation des contraintes referentielles en mode SAVE

Specified by:
setPreValidateReferentialConstraintOnSave in interface JPAGenericDAO<T>
Parameters:
preValidateReferentialConstraintOnSave - Etat de pré-validation des contraintes referentielles en mode SAVE

setPostValidateReferentialConstraintOnSave

public void setPostValidateReferentialConstraintOnSave(boolean postValidateReferentialConstraintOnSave)
Description copied from interface: JPAGenericDAO
Méthode de mise à jour de l'Etat de post-validation des contraintes referentielles en mode SAVE

Specified by:
setPostValidateReferentialConstraintOnSave in interface JPAGenericDAO<T>

setPreValidateReferentialConstraintOnUpdate

public void setPreValidateReferentialConstraintOnUpdate(boolean preValidateReferentialConstraintOnUpdate)
Description copied from interface: JPAGenericDAO
Méthode de mise à jour de l'Etat de pré-validation des contraintes referentielles en mode UPDATE

Specified by:
setPreValidateReferentialConstraintOnUpdate in interface JPAGenericDAO<T>
Parameters:
preValidateReferentialConstraintOnUpdate - Etat de pré-validation des contraintes referentielles en mode UPDATE

setPostValidateReferentialConstraintOnUpdate

public void setPostValidateReferentialConstraintOnUpdate(boolean postValidateReferentialConstraintOnUpdate)
Description copied from interface: JPAGenericDAO
Méthode de mise à jour de l'Etat de post-validation des contraintes referentielles en mode UPDATE

Specified by:
setPostValidateReferentialConstraintOnUpdate in interface JPAGenericDAO<T>
Parameters:
postValidateReferentialConstraintOnUpdate - Etat de postvalidation des contraintes referentielles en mode UPDATE

setPreValidateReferentialConstraintOnDelete

public void setPreValidateReferentialConstraintOnDelete(boolean preValidateReferentialConstraintOnDelete)
Description copied from interface: JPAGenericDAO
Méthode de mise à jour de l'Etat de pré-validation des contraintes referentielles en mode DELETE

Specified by:
setPreValidateReferentialConstraintOnDelete in interface JPAGenericDAO<T>
Parameters:
preValidateReferentialConstraintOnDelete - Etat de pré-validation des contraintes referentielles en mode DELETE

setPostValidateReferentialConstraintOnDelete

public void setPostValidateReferentialConstraintOnDelete(boolean postValidateReferentialConstraintOnDelete)
Description copied from interface: JPAGenericDAO
Méthode de mise à jour de l'Etat de post-validation des contraintes referentielles en mode DELETE

Specified by:
setPostValidateReferentialConstraintOnDelete in interface JPAGenericDAO<T>
Parameters:
postValidateReferentialConstraintOnDelete - Etat de postvalidation des contraintes referentielles en mode DELETE

delete

public void delete(Object entityID)
Description copied from interface: JPAGenericDAO
Methode generique de suppression d'une entite JPA annotee

Specified by:
delete in interface JPAGenericDAO<T>
Parameters:
entityID - Identifiant de l'entité à supprimer

delete

public void delete(Object entityID,
                   boolean preValidateReferentialConstraint,
                   boolean postValidateReferentialConstraint)
Description copied from interface: JPAGenericDAO
Methode generique de suppression d'une entite JPA annotee

Specified by:
delete in interface JPAGenericDAO<T>
Parameters:
entityID - Identifiant de l'entité à supprimer
preValidateReferentialConstraint - Etat de pré-validation des contraintes référentielles
postValidateReferentialConstraint - Etat de post-validation des contraintes référentielles

clean

public void clean()
Description copied from interface: JPAGenericDAO
Methode de nettoyage de la table de l'entité

Specified by:
clean in interface JPAGenericDAO<T>

save

public T save(T entity)
Description copied from interface: JPAGenericDAO
Methode generique d'enregistrement d'une entite JPA annotee

Specified by:
save in interface JPAGenericDAO<T>
Parameters:
entity - Entite a enregistrer
Returns:
Entite enregistree

save

public T save(T entity,
              boolean validateIntegrityConstraint,
              boolean preValidateReferentialConstraint,
              boolean postValidateReferentialConstraint)
Description copied from interface: JPAGenericDAO
Methode generique d'enregistrement d'une entite JPA annotee

Specified by:
save in interface JPAGenericDAO<T>
Parameters:
entity - Entite a enregistrer
validateIntegrityConstraint - Etat de validation des contraintes d'integrites
preValidateReferentialConstraint - Etat de pré-validation des contraintes référentielles
postValidateReferentialConstraint - Etat de post-validation des contraintes référentielles
Returns:
Entite enregistree

update

public T update(Object id,
                T entity)
Description copied from interface: JPAGenericDAO
Methode generique de mise a jour d'une entite JPA annotee

Specified by:
update in interface JPAGenericDAO<T>
entity - Entite a mettre a jour
Returns:
Entite mise a jour

update

public T update(Object id,
                T entity,
                boolean validateIntegrityConstraint,
                boolean preValidateReferentialConstraint,
                boolean postValidateReferentialConstraint)
Description copied from interface: JPAGenericDAO
Methode generique de mise a jour d'une entite JPA annotee

Specified by:
update in interface JPAGenericDAO<T>
entity - Entite a mettre a jour
validateIntegrityConstraint - Etat de validation des contraintes d'integrites
preValidateReferentialConstraint - Etat de pré-validation des contraintes référentielles
postValidateReferentialConstraint - Etat de post-validation des contraintes référentielles
Returns:
Entite mise a jour

findByPrimaryKey

public T findByPrimaryKey(String entityIDName,
                          Object entityID,
                          Set<String> properties)
Description copied from interface: JPAGenericDAO
Methode de chargement immediat des proprietes d'une instance de classe

Specified by:
findByPrimaryKey in interface JPAGenericDAO<T>
Parameters:
entityIDName - Nom de la propriété ID de l'entité
entityID - ID de l'instance de l'entite
properties - Ensemble de proprietes a charger
Returns:
Instance de la classe avec les proprietes charges

findByUniqueProperty

public T findByUniqueProperty(String propertyName,
                              Object propertyValue,
                              Set<String> properties)
Description copied from interface: JPAGenericDAO
Methode de recherche d'une entite par une propriete unique

Specified by:
findByUniqueProperty in interface JPAGenericDAO<T>
Parameters:
propertyName - Nom de la propriete Unique
propertyValue - Valeur de la propriete Unique
properties - Ensemble des proprietes a charger en EAGER
Returns:
Objet recherche

count

public long count(List<Predicate> predicates)
Description copied from interface: JPAGenericDAO
Methode de decompte des entites verifiant la liste de predicats

Specified by:
count in interface JPAGenericDAO<T>
Parameters:
predicates - Liste de predicats de selection
Returns:
Nombre d'entites

filter

public List<T> filter(List<Predicate> predicates,
                      Map<String,OrderType> orders,
                      Set<String> properties,
                      int firstResult,
                      int maxResult)
Description copied from interface: JPAGenericDAO
Methode de filtre des entites d'une classe donnee en fonction des criteres de filtres donnees

Specified by:
filter in interface JPAGenericDAO<T>
Parameters:
predicates - Liste des prédicats
orders - Map des Ordre de tri
properties - Ensemble de propriétés à charger
firstResult - Index du premier resultat retourne
maxResult - Nombre maximum d'elements retournes
Returns:
Liste des objet trouves

executeCriteria

public <Q> List<Q> executeCriteria(javax.persistence.criteria.CriteriaQuery<Q> criteriaQuery,
                                   Map<String,Object> parameters)
Description copied from interface: JPAGenericDAO
Méthode d'execution d'une requete de critere

Specified by:
executeCriteria in interface JPAGenericDAO<T>
Type Parameters:
Q - Parametre de type de la racine de l'entite
Parameters:
criteriaQuery - Requete de critere
parameters - Map des parametres
Returns:
Resultat de la requete

addQueryParameters

protected void addQueryParameters(javax.persistence.Query query,
                                  Map<String,Object> parameters)
Méthode d'ajout de parametres à la requete

Parameters:
query - Requete
parameters - Map des parametres

addOrders

protected void addOrders(javax.persistence.criteria.CriteriaBuilder criteriaBuilder,
                         javax.persistence.criteria.Root<T> root,
                         javax.persistence.criteria.CriteriaQuery<T> criteriaQuery,
                         Map<String,OrderType> orders)
Méthode de chargement des ordres

Type Parameters:
T - Paramètre de type
Parameters:
criteriaQuery - Requete de critères
orders - Liste des ordres

addPredicates

protected void addPredicates(javax.persistence.criteria.CriteriaBuilder criteriaBuilder,
                             javax.persistence.criteria.Root<T> root,
                             javax.persistence.criteria.CriteriaQuery<?> criteriaQuery,
                             List<Predicate> predicates)
Méthode de chargement des prédicats

Type Parameters:
T - Paramètre de type
Parameters:
criteriaBuilder - Constructeur de critères
criteriaQuery - Requete de critères
predicates - Liste des predicats

addProperties

protected void addProperties(javax.persistence.criteria.Root<T> root,
                             Set<String> properties)
Methode d'ajout des Proprietes a charger a la requete de recherche

Type Parameters:
T - Paramètre de type d'entités
Parameters:
root - Entités objet du from
properties - Conteneur de propriétés

addProperties

protected void addProperties(javax.persistence.criteria.Root<T> root,
                             javax.persistence.criteria.CriteriaQuery<T> query,
                             Set<String> properties)
Methode d'ajout des Proprietes a charger a la requete de recherche

Type Parameters:
T - Paramètre de type d'entités
Parameters:
root - Entités objet du from
query - Requete sur l'entité
properties - Conteneur de propriétés

validateEntityIntegrityConstraint

protected void validateEntityIntegrityConstraint(Object entity,
                                                 DAOMode mode,
                                                 DAOValidatorEvaluationTime validationTime)
Méthode de validation des contraintes d'integrités

Parameters:
entity - Entité à valider
mode - Mode DAO
validationTime - Moment d'évaluation

validateEntityReferentialConstraint

protected void validateEntityReferentialConstraint(Object entity,
                                                   DAOMode mode,
                                                   DAOValidatorEvaluationTime validationTime)
Méthode de validation des contraintes referentielles

Parameters:
entity - Entité à valider
mode - Mode DAO
validationTime - Moment d'évaluation

buildPropertyPathForAnyType

private javax.persistence.criteria.Path<?> buildPropertyPathForAnyType(javax.persistence.criteria.Root<T> root,
                                                                       String stringPath)
Méthode de construction d'un chemin de propriété à partir de la racine

Type Parameters:
Y - Paramètre de type du chemin final
Parameters:
root - Racine
stringPath - Chemin sous forme de chaine
Returns:
Chemin recherché sous forme Path


Copyright © 2015 Leadware. All Rights Reserved.