Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

UPDATE

Estou realizando um projeto, estou com dificuldade de fazer um UPDATE por ID. Exemplo: especificar o ID de quem desejo realizar o UPDATE.

Vou deixar minha DAO aqui em baixo. Esse é o geito que ela esta atualmente.

package DAO;

import java.util.List;

import javax.persistence.EntityManager;

import model.Produto;

public class ProdutoDAO {

private EntityManager em;

public ProdutoDAO() {
}

public ProdutoDAO(EntityManager em) {
    this.em = em;
}

public void inserir(Produto produto) {
    em.getTransaction().begin();
    this.em.persist(produto);
    em.getTransaction().commit();

}

public void deletar(Long id) {
    em.getTransaction().begin();
    Produto produto = em.find(Produto.class, id);
    this.em.remove(produto);
    em.getTransaction().commit();

}

public List<Produto> listar() {
    String jpql = "SELECT p FROM Produto p";
    return em.createQuery(jpql, Produto.class).getResultList();
}

}

1 resposta
solução!

Acho que você consegue dessa forma:

  • Recupere o objeto por ID;
     // Dentro da classe DAO
     public Produto buscarPorId(Long id) {
         return entityManager.find(Produto.class, id);
     }
  • O método anterior irá retornar o produto que você quiser. Com esse produto, faça o update com o próprio método do modelo. Por exemplo:
    Produto p = produtoDao.buscarPorId(2l); 
    p.setNome("Lorem ipsum");
  • E terminar com o commit ou o flush do EntityManager;