Ola moçada, meu problema é o seguinte:
Estou tentando fazer uma atualização num atributo de um objeto, mas essa operação está demorando um pouco devido ao seu nível de relacionamento com outros objetos, então eu queria fazer o hibernate ignorar o relacionamento desse objeto nesse momento, entendem?
Não preciso do relacionamento nesse momento, porque estou somente atualizando um atributo do proprio objeto!
Isso é possível?
Att.
blackout,
Desde que os relacionamentos das tabelas permitam, o HIbernate provê uma forma de você fazer isso.
Dá uma olhada nos CascadeType’s das tuas entidades.
Em geral, acho que se você colocar
@ManyToOne( cascade = CascadeType.NONE )
Terá um ganho de performance, mas não posso garantir nada com relação à integridade da tua base, até porquê, não conheço seu DER.
[]'s
Edenilton Fr?s,
Esse é o ponto, não quero mexer no relacionamento das minhas entidades pelo motivo de que posso alterar algum outro ponto do sistema.
Por isso queria uma solução que não levasse em consideração o relacionamento somente nesse ponto, assim eu não estaria correndo o risco de afetar o sistema em algum outro ponto que já use essas entidades do jeito que estão, entendeu?
Obrigado pela ajuda.
Att.
Bulk Update!!
@PersistenceContext EntityManager em;
// em algum método...
em.createQuery("update Dog d set d.nome = :nome where d.id = :id")
.setParameter("nome", "Totó").setParameter("id", 1)
.executeUpdate();
Consegui resolver pessoal,
dev.rafael
Eu tinha tentado dessa forma também, mas o hibernate continuava fazendo várias querys.
Como eu só precisava atualizar um campo do proprio objeto, e esse campo não estava relacionado a outro objeto dependente, eu parei de solicitar ao hibernate pra me retornar o objeto, tipo:
PacoteRequerimento pacote = getComandoLote().buscarPorId(PacoteRequerimento.class, id);
Isso estava fazendo com que o objeto ficasse no cache do hibernate e aí o hibernate tentava atualizar esse objeto, pois o mesmo foi modificado, gerando as várias querys.
Como eu já tenho o id do objeto, simplesmente uso o id diretamente e não mais o objeto.
É isso.
Obrigado pela força!