Hibernate session.saveOrUpdate Não atualiza

4 respostas
fredaguiar

Estou tentando atualizar minha entidade TipoCargo passando o id, mas a unica coisa que acontece é a inserção de um novo registro.
Abaixo esta o codigo. Está bem simples mas nao funciona de jeito nenhum.

public void saveTipocargo(TipoCargo obj) {
    	
    	Session session = HibernateUtil.getSession();
    	session.beginTransaction();
    	session.saveOrUpdate(obj);
    	session.getTransaction().commit();
    }


@Entity
@Table(name="tipoCargo")
public class TipoCargo implements Serializable
{	

	private static final long serialVersionUID = -5126022063769633299L;
	
	private Integer id;
	private String nome;
    private String nivel;
    private Integer version;
//    private Usuario usuario;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id")
	public final Integer getId() {
		return id;
	}

    public final void setId(Integer id) {
		this.id = id;
	}

	@Column(name="nome", nullable=false, length=30)
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	@Column(name="nivel", nullable=false, length=30)
	public String getNivel() {
		return nivel;
	}

	public void setNivel(String nivel) {
		this.nivel = nivel;
	}

	@Version
	@Column(name="VERSION")
	public Integer getVersion() {
		return version;
	}

	public void setVersion(Integer version) {
		this.version = version;
	}
	
}

4 Respostas

maschiojv

Acho que vc tem que fazer o flush das alterações antes de comitar a transação. Tente isso:

public void saveTipocargo(TipoCargo obj) {  
           
         Session session = HibernateUtil.getSession();  
         session.beginTransaction();  
         session.saveOrUpdate(obj);  
         session.flush();
         session.getTransaction().commit();  
     }
Lavieri

debuga e vê se o ID esta sendo passando, quando tem o id, ele da o update… any way. use marge

Rafael_Carneiro

Tente mudar a forma de geração do seu id: @GeneratedValue(strategy=GenerationType.AUTO)

fredaguiar

Valeu pessoal, mas eu ja resolvi.
O problema era a coluna VERSION que nao estava sendo passada.

Criado 21 de outubro de 2009
Ultima resposta 21 de out. de 2009
Respostas 4
Participantes 4