Criteria Hibernate atualizando campo especifíco

5 respostas
MarceloNeo

Ola Comunidade,

Tenho o Objeto cliente...
public class cliente
{
    private Long id;


   private String name;

  private String email;

}
Agora se sabe o id do cliente... Deseja se atualizar o email do cliente

Mas se eu mandar atualizar id, email com name null ele vai limpar o nome do cliente??? Usando Criteria do Hibernate.
Certo ou errado...
Como devo fazer para ter essa necessidade atendida?
Agradeço desde já as participações...

5 Respostas

romarcio

Você não usa Criteria para atualizar objetos, para isso use o método update(), saveOrUpdade() da session.
Para atualizar, primeiro recupere o objeto que deseja atualizar e então altere nele os dados que deseja e faça a atualização pelo método update() ou saveOrUpdate().
Da uma olhada nesse tutorial: utilizando-swing-com-hibernate-sessionfactory

MarceloNeo

romarcio:
Você não usa Criteria para atualizar objetos, para isso use o método update(), saveOrUpdade() da session.
Para atualizar, primeiro recupere o objeto que deseja atualizar e então altere nele os dados que deseja e faça a atualização pelo método update() ou saveOrUpdate().
Da uma olhada nesse tutorial: utilizando-swing-com-hibernate-sessionfactory

Ai é que esta a questão NÃO quero recuperar o Objeto…
Entede deveria ser algo como um merge…
os valores que são nullos não mudar…

com SQL normal isso é possivel

por exemplo: sql="UPDATE cliente set email='[email removido]' where id=1 "Agora acho que fui mais claro…

adrianostanley

Acontece que o Hibernate entende que quando vc não passa um valor (isto é, quando ele é “null”) é porque você quer setá-lo como null no banco também pois no fundo dos panos ele vai fazer um set pra cada campo.

Se ele ignorasse o null, como ele saberia se você quer setar o campo pra null ou fazer nada com ele? :wink:

adrianostanley

Acontece que o Hibernate entende que quando vc não passa um valor (isto é, quando ele é “null”) é porque você quer setá-lo como null no banco também pois no fundo dos panos ele vai fazer um set pra cada campo.

Se ele ignorasse o null, como ele saberia se você quer setar o campo pra null ou fazer nada com ele? :wink:

MarceloNeo

adrianostanley:
Acontece que o Hibernate entende que quando vc não passa um valor (isto é, quando ele é “null”) é porque você quer setá-lo como null no banco também pois no fundo dos panos ele vai fazer um set pra cada campo.

Se ele ignorasse o null, como ele saberia se você quer setar o campo pra null ou fazer nada com ele? :wink:

Sim o que você falou esta correto…
Também sabemos disso…

mas vamos se a ter ao problema… atualizar determinados campos…
Com o Hibernate em si…

Criado 16 de agosto de 2011
Ultima resposta 16 de ago. de 2011
Respostas 5
Participantes 3