model.AtendimentoModel.java Source code

Java tutorial

Introduction

Here is the source code for model.AtendimentoModel.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package model;

import java.util.ArrayList;
import org.hibernate.ObjectNotFoundException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

/**
 *
 * @author joao
 */
public class AtendimentoModel {

    private final SessionFactory objSessionFactory;
    //String para mensagem de erro
    String msg = "";

    public AtendimentoModel() {
        //Recebe o Session Factory do HIbernate
        this.objSessionFactory = sigos.SigosHibernateUtil.getSessionFactory();
    }

    public int insert(Atendimento obj) {
        Session objSession = this.objSessionFactory.openSession();
        try {
            Transaction t = objSession.beginTransaction();
            Query q = objSession
                    .createSQLQuery("select * from inserirAtendimento(:idpessoa, :idfuncionario, :idmatriz)");

            q.setParameter("idpessoa", obj.getPessoa().getIdpessoa());
            q.setParameter("idfuncionario", obj.getFuncionario().getIdfuncionario());
            q.setParameter("idmatriz", obj.getMatriz().getIdmatriz());

            Object callback = q.uniqueResult();
            t.commit();
            objSession.close();
            return (int) callback;
        } catch (Exception e) {
            System.out.println(e.toString());
            return 0;
        }
    }

    public String update(Atendimento obj) {
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();
        //Inicia uma transao dentro da sesso aberta
        Transaction objTransaction = objSession.beginTransaction();

        try {
            //ATUALIZA o objeto categoria, assim o hibernate persiste no bancoapagando o registro.
            objSession.merge(obj);
            //Realiza um commit do UPDATE
            objTransaction.commit();
        } catch (Exception e) {
            //Caso ocorrer algum erro, mostra uma mensagem
            msg = e.getMessage();
            //Realiza o Rollback, cancelando o UPDATE no banco de dados.
            objTransaction.rollback();
        }

        //Fecha a sesso
        objSession.close();
        //Retorna a mensagem
        return msg;
    }

    public String delete(Atendimento obj) {
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();
        //Inicia uma transao dentro da sesso aberta
        Transaction objTransaction = objSession.beginTransaction();

        try {
            //ATUALIZA o objeto categoria, assim o hibernate persiste no bancoapagando o registro.
            objSession.delete(obj);
            //Realiza um commit do UPDATE
            objTransaction.commit();
        } catch (Exception e) {
            //Caso ocorrer algum erro, mostra uma mensagem
            msg = e.getMessage();
            //Realiza o Rollback, cancelando o UPDATE no banco de dados.
            objTransaction.rollback();
        }

        //Fecha a sesso
        objSession.close();
        //Retorna a mensagem
        return msg;
    }

    public ArrayList<Atendimento> findByAll() {
        //Cria lista de objetos
        ArrayList<Atendimento> lstAtendimento = null;
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();

        try {
            Query objQuery = objSession.createQuery("from Atendimento");
            lstAtendimento = (ArrayList<Atendimento>) objQuery.list();
        } catch (ObjectNotFoundException e) {
            return null;
        }

        return lstAtendimento;
    }

    public ArrayList<Atendimento> findByIdPessoa(int idpessoa) {
        Atendimento a = null;
        Session objSession = this.objSessionFactory.openSession();
        ArrayList<Atendimento> lstAtendimentos = null;
        try {
            Query objQuery = objSession.createQuery("from Atendimento a where idpessoa = :idpessoa");
            objQuery.setParameter("idpessoa", idpessoa);
            lstAtendimentos = (ArrayList<Atendimento>) objQuery.list();
        } catch (Exception e) {
            return null;
        }
        return lstAtendimentos;
    }

    public Object getLastId() {
        Session objSession = this.objSessionFactory.openSession();
        try {
            Transaction t = objSession.beginTransaction();
            Query q = objSession.createSQLQuery("select * from ultimoatendimento()");
            Object obj = q.uniqueResult();
            t.commit();
            objSession.close();
            objSession.evict(objSession);
            return obj;
        } catch (Exception e) {
            System.out.println(e.toString());
            return null;
        }
    }

    public ArrayList<Atendimento> findById(int id) {
        Atendimento a = null;
        Session objSession = this.objSessionFactory.openSession();
        ArrayList<Atendimento> lstAtendimentos = null;
        try {
            Query objQuery = objSession.createQuery("from Atendimento a where id = :id");
            objQuery.setParameter("id", id);
            lstAtendimentos = (ArrayList<Atendimento>) objQuery.list();
        } catch (Exception e) {
            return null;
        }

        return lstAtendimentos;
    }

    public ArrayList<Pessoa> findPessoaByIdPessoa(int id) {
        Pessoa p = null;
        Session objSession = this.objSessionFactory.openSession();
        ArrayList<Pessoa> lstPessoa = null;
        try {
            Transaction t = objSession.beginTransaction();
            Query objQuery = objSession.createQuery("from Pessoa p where id = :id");
            objQuery.setParameter("id", id);
            lstPessoa = (ArrayList<Pessoa>) objQuery.list();
            t.commit();
            //objSession.evict(objSession);
        } catch (Exception e) {
            System.out.println(e.toString());
            return null;
        }
        objSession.close();
        return lstPessoa;
    }
}