Problema com Netbeans e auto incremento do PostgreSQL

Estamos tentando usar o framework visual web javaserver faces

estamos usando o PostgreSQL e uma tabela auto incremento
mas os dados são inseridos com o código igual a zero

se eu uso insert por sql o auto incremento funciona oque esta ocorrendo?

o código do salvar

public String btsalvar_action() {
String imagem = null;
//define o upload de arquivos através do componente File Upload
UploadedFile uploadedFile = fimagem.getUploadedFile();

if(!uploadedFile.getOriginalName().equals("")){
    ServletContext theApplicationsServletContext =
     (ServletContext) this.getExternalContext().getContext();
    //define o caminho físico do diretório images
    String path = theApplicationsServletContext.getRealPath("/images");

    //captura o nome original do arquivo
    imagem = uploadedFile.getOriginalName();
    //captura o tipo de arquivo
    String uploadedFileType = uploadedFile.getContentType();

    //verifica se o arquivo é uma imagem válida
    if ( uploadedFileType.equals("image/jpeg")
    || uploadedFileType.equals("image/pjpeg")
    || uploadedFileType.equals("image/jpg")
    || uploadedFileType.equals("image/gif")) {
        try {

            File file = new File(path+"/"+imagem);
            //escreve o arquivo no diretório determinado
            uploadedFile.write(file);


        } catch (Exception ex) {
            error("Problema com o arquivo: " +imagem);
        }
    } else {
        error("Aceito somente JPEG, PJPEG ou GIF.");

    }       
}

try{
 RowKey rowKey = getSessionBean1().getLivroBean().getRowKey();
 String mensagem;
 if(rowKey==null){
  //prepara uma nova linha para inserção de dados
  rowKey =  livrosDataProvider.appendRow();
  mensagem = "Adicionado com sucesso!";
 }
 else{
     //atualiza o cache para iniciar a exclusão
     livrosDataProvider.refresh();
     //caso não haja novo upload da imagem
     //utiliza a antiga
     if(uploadedFile.getOriginalName().equals(""))
         imagem=getSessionBean1().getLivroBean().getImagens();

     mensagem = "Atualizado com sucesso!";



 }
  //captura os valores de cada componente no formulário
  //e os atribui a seus determinados campos no banco de dados
  livrosDataProvider.setValue("titulo", rowKey, tftitulo.getText());
  livrosDataProvider.setValue("edicao", rowKey, tfedicao.getText());
  livrosDataProvider.setValue("publicacao", rowKey, tfpublicacao.getText());
 
  //guarda ou atualiza no banco de dados apenas o nome do arquivo
  livrosDataProvider.setValue("imagens", rowKey, imagem);
  //grava as informações no banco de dados
  livrosDataProvider.commitChanges();
  //limpa os campos existentes
  tftitulo.setText(null);
  tfedicao.setText(null);
  tfpublicacao.setText(null);
  
  //torna nulo o valor de rowkey em LivroBean
 getSessionBean1().getLivroBean().setRowKey(null);


  //informa ao administrador o cadastro efetuado
  info(mensagem);

}catch(Exception ex){
    //informa o erro caso ocorra ao administrador
    error("Não foi possível adicionar "+ex.getMessage());
    livrosDataProvider.revertChanges();
}

//retorna nulo pois não muda a página
return null;

}