Cache JPA

09/12/2016

1

Boa noite pessoa!

Estou com um problema sério de objeto desatualizado, já tentei de N formas já para fazer atualizar mas mesmo assim o problema segue. Estou obtendo um ArrayList de dados em uma Table e no momento que seleciono uma linha e mudo o status dela para inativo, aciono um método que atualiza a table, porém o dado que acabei de inativar retorna e somente quando fecho a tela e abro de novo some dos resultados. Segue os codes:

Query de busca:

public static List<Removal> findByRemovalPatient(Long id) {

EntityManagerFactory entityManagerFactory = PersistenceManager.getInstance().getEntityManagerFactory();
EntityManager manager = entityManagerFactory.createEntityManager();
TypedQuery<Removal> typedQuery = manager.createNamedQuery("Removal.findByRemovalPatient", Removal.class);
typedQuery.setParameter(1, id);
List<Removal> lista = typedQuery.getResultList();
manager.close();
return lista;
}


Método de delete:

public boolean Delete(Removal Removal){
try {
EntityManagerFactory entityManagerFactory = PersistenceManager.getInstance().getEntityManagerFactory();
EntityManager manager = entityManagerFactory.createEntityManager();
EntityTransaction tx = manager.getTransaction();
tx.begin();
if(Removal.getAccountPatient().getStatusPayment()==StatusPayment.PENDENTE){
Removal = manager.find(Removal.class, Removal.getId());
Removal.setStatus(false);
System.out.println("APA");
}else{
AlertSystem.Alert("Pagamento Finalizado!", "Favor cancelar pagamento para excluir destino!");
}
tx.commit();
manager.close();
System.out.println("TESTE: " + Removal.isStatus());
return true;
} catch (Exception e){
Utilities.LoggerException(e);
//manager.getTransaction().rollback();
e.printStackTrace();
return false;
}
}
Responder