Cache SessionFactory

0 respostas
B

Bom dia Pessoal,

Estou enfrentando um problema que não consigo solucionar.
Possuo um processo que fica verificando no banco quando existe registro para ser processado.
Para verificar utilizo o método que executa a seguinte instrução.

public List assinarNfe(){

        SessionFactory sessionFactory = SessionControl.getInstance();
        Session session = sessionFactory.openSession();

        Criteria consulta = session.createCriteria(Nfe.class);

        consulta.add( Expression.eq("status", "1") );

        List assinar = consulta.list();

        session.close();
        //sessionFactory.close();
        
        return assinar;
    }

Podem ver que este método eu pego a sessionFactory utilizando o getInstance que é um singleton.

public class SessionControl {
    
    private static SessionControl instancia;
    private static SessionFactory sessionFactory;
    
    private SessionControl(){
        this.sessionFactory =
              new Configuration().configure().buildSessionFactory();
    }
    
    public static synchronized SessionFactory getInstance(){
        
        if (instancia == null){
            instancia = new SessionControl();
            System.out.println("Criando instancia de banco");
        }
        
        return sessionFactory;
        
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
    
}

O meu problema é o seguinte no decorrer do processo onde fico chamando o método que faz a criteria que retorna o list de registros no banco eu diretamente no banco insiro um registro.
Porem no momento em que o método faz a criteria e vai buscar no banco essa informação ele não retorna nada.
Queria saber se alguem ja passou por isso ou tem idéia do que pode ser?

Estou a 1 semana procurando em fórum lendo docs para ver se descubro algo.

Obrigado.

Criado 5 de junho de 2013
Respostas 0
Participantes 1