/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.megatim.fdxgenerator.model.dao; import com.megatimfx.common.pojo.SearchCriteria; import com.megatim.fdxgenerator.model.TypeFichier; import com.megatim.fdxgenerator.model.ValidateurFichier; import java.util.ArrayList; import java.util.List; import java.util.Optional; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.JoinType; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import org.hibernate.Session; import org.hibernate.query.Query; /** * * @author STEPHANIE */ public class ValidateurFichierDAO { private ValidateurFichierDAO() { } public static Optional findByTypeFichier(TypeFichier typeFichier) { Optional opt; try (Session session = HibernateUtil.getSessionFactory().openSession()) { Query query = session.createQuery("select v from ValidateurFichier v where v.typeFichier =: typeFichier"); query.setParameter("typeFichier", typeFichier); opt = query.uniqueResultOptional(); } return opt; } public static Optional findByTypeFichier(String typeFichierCode) { Optional opt ; try (Session session = HibernateUtil.getSessionFactory().openSession()) { Query query = session.createQuery("select v from ValidateurFichier v where v.typeFichier.code =: typeFichierCode"); query.setParameter("typeFichierCode", typeFichierCode); opt = query.uniqueResultOptional(); } return opt; } public static Optional findById(String id) { Optional opt; try (Session session = HibernateUtil.getSessionFactory().openSession()) { Query query = session.createQuery("select v from ValidateurFichier v where v.id =: id"); query.setParameter("id", id); opt = query.uniqueResultOptional(); } return opt; } public static List getAllByPage(int indexDebut, int numberOfElt,List searchCriterias) { AbstractDAO dao = new AbstractDAO<>(ValidateurFichier.class); List liste = new ArrayList<>(); try (Session session = HibernateUtil.getSessionFactory().openSession()) { CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder(); CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(ValidateurFichier.class); Root root = criteriaQuery.from(ValidateurFichier.class); List predicates = dao.createPedicates(searchCriterias,criteriaBuilder,root); root.fetch("structureLignes",JoinType.LEFT); CriteriaQuery cq = criteriaQuery.select(root).distinct(true); cq = cq.select(root).where(predicates.toArray(new Predicate[predicates.size()])); TypedQuery typedQuery = session.createQuery(cq); typedQuery.setFirstResult(indexDebut); typedQuery.setMaxResults(numberOfElt); liste = typedQuery.getResultList(); } return liste; } }