E ae pessoal, tudo certo, gostaria de saber se voces podem me ajudar,
Eu estou fazendo um projeto de controle de estoque, ´só que esta acontecendo o seguinte, existe o metodo armazenar, que serve pra atualizar os dados , só que quando eu armazeno, ele nao atualiza os dados, ele cria outro registro com os dados que eu alterei.
Pensei que fosse o GenerationType.SEQUENCE, mas comentei e mesmo assim continua do mesmo jeito …
segue em exemplo abaixo
tenho a classe produto
@Entity
public class Produto implements Serializable {
@Id
@GeneratedValue//(strategy = GenerationType.SEQUENCE)
@Column(name="id_produto")
private Long id;
@Column(name="nome_produto")
private String nome;
@Column(nullable=false)
private String modelo;
private double vlvenda;
private double vlcompra;
@Temporal(javax.persistence.TemporalType.DATE)
private Date data;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="id_categoria",
insertable=true, updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.ALL)
private Categoria categoria;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="id_fornecedor",
insertable=true, updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.ALL)
private Fornecedor fornecedor;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="id_marca",
insertable=true, updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.ALL)
private Marca marca;
@Column(unique=false, nullable=false)
private String status;
//getters e setters
O meu armazena da classe ProdutoLogic é esse
public void armazena(Produto produto) {
this.daoFactory.beginTransaction();
this.daoFactory.getProdutoDao().atualiza(produto);
this.daoFactory.commit();
}
O meu dao é segue o modelo da loja virtual
public void atualiza(T u) {
this.session.merge(u);
}
O que eu estou fazendo de errado ? como eu posso resolver este problema.
muito obrigado galera