Peço ajuda dos senhores em uma situação que já pesquisei bastante e não encontrei a solução.
Utilizo em algumas listas, view do mysql (um select com várias tabelas) criada como entidade, a consulta funciona perfeitamente, porém quando faço um update na tabela principal, e chama a pagina com a lista, ela não traz as alterações feitas, o interessante é que o insert ou delete atualiza normalmente.
Teria algum comando que eu possa colocar e ele atualiza essa view.
Oi Cleiton, verdade esqueci de comentar sobre isso, no banco é feito o update corretamente, somente a view que não atualiza.
Obrigado pelo retorno.
Att,
Alexandre.
Cleiton_Conceicao
estranho… perguntei isso pq imaginei que no update vc poderia está dando roolback em algum momento.
tu deve está fazendo alguma coisa de diferente na hora de dar update.
Dragoon
Poste exemplo do código ???
ligabue
Boa tarde, segue minhas classes:
Minha Classe Model referente a View no mysql
@Entity@Table(name="contaspagasepagar")publicclassContasPagasePagarimplementsSerializable{@IdprivateLongidconta;privateLongcompraconta;privateLongvendaconta;privateStringvencconta;privateStringdatapagtoconta;privateStringdescricaoconta;privateStringcategoriaconta;privateStringfornecedorconta;privateStringveiculoplacaconta;privateStringvalorconta;publicLonggetIdconta(){returnidconta;}publicvoidsetIdconta(Longidconta){this.idconta=idconta;}eorestantedosGettersesetters}Minhaclassedaogenerica:publicclassDaoGenerico<PK,T>{EntityManagerem=JPAUtil.getEntityManager();protectedvoidinit(){// Inciando a transaçãoJPAUtil.init();}protectedvoidcommit(){// Finalizando a transaçãoJPAUtil.commit();}protectedvoidrollback(){// estornando a transaçãoJPAUtil.rollback();}publicvoidsalvar(Tmodelo){this.init();em.persist(modelo);this.commit();}publicvoiddeletar(Tmodelo,longid){this.init();Tencontrado=(T)em.find(modelo.getClass(),id);em.remove(encontrado);this.commit();}publicvoidatualizar(Tmodelo){this.init();em.merge(modelo);this.commit();}publicList<T>buscaTodos(){Stringjpql="from "+getTypeClass().getName();Queryqry=em.createQuery(jpql);returnqry.getResultList();}publicTbuscaPorId(Tmodelo,Longid){return(T)em.find(modelo.getClass(),id);}privateClass<?>getTypeClass(){Class<?>clazz=(Class<?>)((ParameterizedType)this.getClass().getGenericSuperclass()).getActualTypeArguments()[1];returnclazz;}}
Trecho da minha classe Dao que grava o contas a pagar:
Se precisar de mais algum trecho do codigo me avise por favor.
Att,
Alexandre.
ligabue
Boa noite.
Caros colegas consegui resolver fazendo um refresh da entidade, carrego um objeto da entidade view correspondente a entidade principal que foi alterado o registro, segue exemplo: