Ola, preciso efetuar um update de 250mil objetos em banco,
o unico problema é que o sistema utiliza o Hibernate 2.1.8 e não
é viavel atualizar ele agora. Queria saber se tem como enviar uma
query de update direto pelo Hibernate?
Eu vi um exemplo assim aqui no forum
String hql = "update Produto set nome = 'kk' ";
session.createQuery(hql).executeUpdate();
mas meu objeto Query só tem estas funcoes de atualizacao: iterate, list, scroll e uniqueResult,
acredito que todas sejam de pesquisa e não atualização.
Está sendo inviável buscar 250mil objetos e atualizar um a um…
Você consegue fazer por nativeQuery?
Não tem native query.
Acredito que eu consigo pegar o objeto Connection,
mas não sei como funcionaria, o sistema usa EJB para
controlas as transações, não sei se ele iria comitar
as coisas enviadas direto pelo connection,
ou tem que passar pelo flush e commit do hibernate.
esses processos em batch eu acho melhor fazer um update básico com jdbc, existe essa possibilidade para vocês?
A versão do EJB não sei, mas é antiga, utiliza XML ainda, interfaces Local, LocalHome, Remote, etc…
Vou tentar utilizando o connection diretamente, só tenho que testar se o EJB vai tratar a transação.
Valeu pelas respostas.