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;