Atualizar Registro - Hibernate

Pessoal, quando tento atualizar o objeto com o hibernate ocorre a seguinte exception :


org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at br.com.datasearch.usuarios.PUsuarios.setUpdateUsuario(PUsuarios.java:49)
at br.com.datasearch.usuarios.NUsuarios.updateUsuario(NUsuarios.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
at javax.faces.component.UICommand.broadcast(UICommand.java:312)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at br.com.datasearch.login.FiltroSeguranca.doFilter(FiltroSeguranca.java:29)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.BatchUpdateException: Entrada em lote 0 update “sapientiaContact”.usuarios set login=NULL, nivel=ADMINISTRADOR, nome=JULIANA DAS GRAÇAS SANTOS, senha=698dc19d489c4e4db73e28a713eab07b, status=ATIVADO where id=17 foi abortada. Chame getNextException para ver a causa.
at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2512)
at org.postgresql.core.v3.QueryExecutorImpl$1.handleError(QueryExecutorImpl.java:399)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1310)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:347)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2574)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)


A Classe mapeada é a seguinte :

/*

  • Usuarios.java
  • Created on 29 de Setembro de 2006, 16:50
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
    */

package br.com.datasearch.usuarios;

/**
*

  • @author TMK125
    */
    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.OneToOne;
    import javax.persistence.SequenceGenerator;
    import javax.persistence.Table;

@Entity
@Table(name="“sapientiaContact”.usuarios")
public class Usuarios implements Serializable {

private int id = 0;
private String login = null;
private String senha = null;
private String nome = null;
private String nivel = null;    
private String status = null;


public Usuarios() {
    
}

@Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "generator_id_usuario")
@SequenceGenerator(name = "generator_id_usuario", sequenceName = "\"sapientiaContact\".usuarios_id_seq", allocationSize = 1)
@Column(name="id", nullable=false)
public int getId() {
    return id;
}

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

@Column(name="nome")
public String getNome() {
    return nome;
}

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

@Column(name="nivel")
public String getNivel() {
    return nivel;
}

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

@Column(name="login", unique = true, insertable = true, updatable = true)
public String getLogin() {
    return login;
}

public void setLogin(String login) {
    this.login = login;
}

@Column(name="senha")
public String getSenha() {
    return senha;
}

public void setSenha(String senha) {
    this.senha = senha;
}


@Column(name="status")
public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

}


O Método que faz a atualização do registro é o seguinte :

public boolean setUpdateUsuario(Usuarios usuario) {
	this.session = ConexaoHibernate.getInstance();
	Transaction tx = null;
    boolean sucesso  = false;
    try {
    	tx = this.session.beginTransaction();
		System.out.println("Usuário : " + usuario.getId());        	
        this.session.update(usuario);
        tx.commit();
        sucesso = true;            
     } catch (HibernateException hbe) {
         //System.out.println("HibernateException em PUsuarios.java " + hbe.getMessage());
    	 hbe.printStackTrace();
     } finally {
         this.session.flush();        	 
    	 this.session.close();
    	 
     }
    return sucesso;
}

Ja verifiquei e o objeto está sendo passado corretamente para o método, com todos os membros configurados.

Alguem tem idéia do que pode ser esse pau?

Agradeço pela ajuda!