Procurei procurei e procurei, e nao encontrei nenhum topico falando uma soluçao eficaz, para quando voce deseja atualizar apenas 1 colunas e as outras colunas sao “zeradas”, se alguem descobriu alguma soluçao, por favor poste aqui !
[code]import org.hibernate.SessionFactory;
import org.hibernate.classic.Session;
public class UpdateProduto {
public static void main(String[] args) {
Session session = (Session) new HibernateUtil().getSession();
Produto p = new Produto();
p.setId(3);
p.setNome("Update Teste");
session.beginTransaction();
session.update(p);
session.getTransaction().commit();
session.close();
}
}
[/code]
Você pode recuperar o objeto do banco de dados e alterar apenas o campo que você deseja alterar.
N peguei a ideia desculpa
Desculpe roberto, acho que peguei a ideia, nao seria, fazer uma consistencia e verificar se o campo q nao foi preenchido, atribuir o valor que ja esta armazenado na minha coluna e depois dar o update ?
import org.hibernate.SessionFactory;
import org.hibernate.classic.Session;
Tomei a ousadia de copiar seu código e adaptar para o que mencionei.
[code]
public class UpdateProduto {
public static void main(String[] args) {
Session session = (Session) new HibernateUtil().getSession();
// A Interface Session não possui método findById, mas vc pode implementar algo similar!
Produto p = session.findById(3);
p.setNome("Update Teste");
session.beginTransaction();
session.update(p);
session.getTransaction().commit();
session.close();
}
} [/code]
Desculpa cara, mais estaca 0 (:
A ideia que eu tinha era usar hql, para poder apenas dar update no meu campo desejado.