Erro Update

Boa tarde,

Estou com um problema na hora de realizar a alteração de um objeto.

Na minha página está tudo OK, todos os dados da alteração estão sendo preenchidos.

Porém ao dar submit na página, o método que faz a alteração, fica com o ID do objeto null

Segue código do meu controller:

// Cadastro de CD - SALVAR @RequestMapping(value = "/alterarCd", method = RequestMethod.POST) public ModelAndView alterarCd(Cd cd, BindingResult result, Map<String, Object> model) { ModelAndView mv = new ModelAndView("/manterCd/atualiza"); if (result.hasErrors()) { model.put("errors", result.getAllErrors()); ModelAndView mvret = new ModelAndView("/manterCd/atualiza", model); mvret.addObject("generos", servico.findAllGeneroMusical()); mvret.addObject("anos", getAnos()); return mvret; } else { System.out .println(cd.getId_cd() + " ---------- ID HORA QUE ESTÁ SALVANDO---------------------------------"); servico.add(cd); mv.addObject("generos", servico.findAllGeneroMusical()); mv.addObject("anos", getAnos()); return mv; } }

A minha página está assim:

[code]

#parse("cabecalho.vm") ALTERAÇÃO DE CDS #set($cd = $cds) Genero #if($generos != "") #foreach($genero in $generos) $genero.descricao #end #else$cd.genero #end

Cantor

Titulo

Ano Lancamento #if($anos != "") #foreach($ano in $anos) $ano #end #else$cd.anoLancamento #end

Preco

#parse(“rodape.vm”)

[/code]

E meu objeto Cd (Model) está com a classe dessa forma definida:

[code]package com.velocity.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.NotEmpty;

@Entity
@Table(name=“CD”, schema=“virtualstore”)
public class Cd implements Serializable{

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "id")
private Integer id_cd;

@Column
@org.hibernate.validator.constraints.NotEmpty(message="O genero não foi informado.")
@Size(min = 2, max = 50)
private String genero;

@Column
@NotEmpty(message="O cantor não foi informado.")
@Size(min = 2, max = 30, message="O cantor foi informado com apenas 1 ou com mais de 30 caracteres.")
private String cantor;

@Column
@NotEmpty(message="O titulo não foi informado.")
@Size(min = 2, max = 50, message="O título foi informado com apenas 1 caractere ou com mais de 50 caracteres.")
private String titulo;

@Column(name = "ano")
@NotEmpty(message="O ano de lançamento não foi informado.")
private String anoLancamento;

@Column
@NotNull(message="O preco não foi informado.")
@Min(value=1, message="O preço foi informado com o valor 0.")
@DecimalMax(value="999999.99", message="O preço foi informado com o valor 1234567,568.")
private Double preco;

public Integer getId_cd() {
	return id_cd;
}
public void setId_cd(int id_cd) {
	this.id_cd = id_cd;
}
public String getGenero() {
	return genero;
}
public void setGenero(String genero) {
	this.genero = genero;
}
public String getCantor() {
	return cantor;
}
public void setCantor(String cantor) {
	this.cantor = cantor;
}
public String getTitulo() {
	return titulo;
}
public void setTitulo(String titulo) {
	this.titulo = titulo;
}
public String getAnoLancamento() {
	return anoLancamento;
}
public void setAnoLancamento(String anoLancamento) {
	this.anoLancamento = anoLancamento;
}
public Double getPreco() {
	return preco;
}
public void setPreco(Double preco) {
	this.preco = preco;
}

}
[/code]

Sempre que altero ele cria um novo objeto no banco, com um novo ID e mantem o antigo.

Alguém sabe o que pode ser? Obrigado desde já.

Atenciosamente,