/* * 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.fdxconvert.dao; import com.megatim.fdxconvert.model.AlphaNumeriqueField; import com.megatim.fdxconvert.model.ConversionModel; import com.megatim.fdxconvert.model.Tache; import com.megatim.fdxconvert.model.TypeFichier; import com.megatim.fdxconvert.model.Validateur; import java.util.List; import java.util.Optional; import org.hibernate.Session; import org.hibernate.query.Query; /** * * @author STEPHANIE */ public class TypeFichierDAO { private TypeFichierDAO() { } public static List getAllTypeFichWithoutValidateur() { try ( Session session = HibernateUtil.getSessionFactory().openSession()) { Query query = session.createQuery("select t from TypeFichier t where t.code not in" + "(select t from TypeFichier t, Validateur v where t.code = v.codeTypeFichier)"); return query.getResultList(); } } public static Optional findByCode(TypeFichier t) { try ( Session session = HibernateUtil.getSessionFactory().openSession()) { Query query = session.createQuery("select t from TypeFichier t where t.code = :code"); query.setParameter("code", t.getCode()); return query.uniqueResultOptional(); } } public static Optional findByCode(String codeTypeFichier) { try ( Session session = HibernateUtil.getSessionFactory().openSession()) { Query query = session.createQuery("select t from TypeFichier t where t.code = :code"); query.setParameter("code", codeTypeFichier); return query.uniqueResultOptional(); } } public static List getAllTypeFichWithoutParaAuto() { try ( Session session = HibernateUtil.getSessionFactory().openSession()) { Query query = session.createQuery("select t from TypeFichier t where t.code not in" + "(select t from TypeFichier t, ParametreAutomatique p where t.code = p.codeTypeFichier)"); return query.getResultList(); } } public static List getAllTypeFichierWithValidateur() { try ( Session session = HibernateUtil.getSessionFactory().openSession()) { Query query = session.createQuery("select t from TypeFichier t, Validateur v where v.codeTypeFichier = t.code"); return query.getResultList(); } } public static List getAllTypeFichierWithModelJson() { try ( Session session = HibernateUtil.getSessionFactory().openSession()) { Query query = session.createQuery("select t from TypeFichier t, ModeleJson m where t.code = m.typeFichier.code"); return query.getResultList(); } } public static void delete(TypeFichier typeFichier) throws Exception { List conversionModels = ConversionModelDAO.findByTypeFichier(typeFichier); Optional opt = ValidateurDAO.findByCodeTypeFichier(typeFichier.getCode()); List taches = TacheDAO.getTacheByTypeFichier(typeFichier); List alphaFields = AlphaNumeriqueFieldDAO.findByCodeTypeFichier(typeFichier.getCode()); try ( Session session = HibernateUtil.getSessionFactory().openSession()) { session.beginTransaction(); for (ConversionModel model : conversionModels) { session.delete(model); } for(AlphaNumeriqueField field : alphaFields) { session.delete(field); } if (opt.isPresent()) { session.delete(opt.get()); } for (Tache tache : taches) { session.delete(tache); } session.delete(typeFichier); session.getTransaction().commit(); } } }