/*
|
* 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<TypeFichier> 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<TypeFichier> 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<TypeFichier> 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<TypeFichier> 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<TypeFichier> 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<TypeFichier> 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<ConversionModel> conversionModels = ConversionModelDAO.findByTypeFichier(typeFichier);
|
Optional<Validateur> opt = ValidateurDAO.findByCodeTypeFichier(typeFichier.getCode());
|
List<Tache> taches = TacheDAO.getTacheByTypeFichier(typeFichier);
|
List<AlphaNumeriqueField> 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();
|
}
|
}
|
|
}
|