Boa tarde a todos,
Hoje eu me bati em uma consulta porque quando eu chamava um elemento List de um objeto (propriedade.getInstalacoesProdutivas()), ele não estava sendo atualizado com o que eu havia cadastrado em uma outra aba do sistema, apenas quando eu reiniciava o Jetty o dado inserido aparecia naquele List.
O problema estava porque eu não chamava o método clear do EntityManager, logo no meu método de busca eu adicionei a chamada ao método antes de executar a HQL com através da javax.persistence.Query:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
String sql = "SELECT DISTINCT" + " p, c, e, pa, org, us " + " FROM " + " org.hidroinformatica.sisui.beans.Propriedade AS p " + " INNER JOIN fetch p.cidade AS c " + " INNER JOIN fetch c.estado AS e " + " INNER JOIN fetch e.pais AS pa " + " INNER JOIN fetch p.organizacao AS org " + " INNER JOIN fetch p.usuario AS us " + " WHERE " + " p.id IS NOT NULL "; if(consulta.getEstado() != null && consulta.getEstado().getId() != null){ sql += " AND e.id = " + consulta.getEstado().getId(); } Query query = this.getEntityManager().createQuery(sql); // Faço a limpeza do entity. this.getEntityManager().clear(); return query.getResultList(); |
Vou pesquisar formas mais legais de resolver este problema, mas por enquanto é isto.
Abraços e até a próxima.