Ola
Criei inicialmente um projeto java desktop no netbeans ,criei as classes de modelo dao e view estava funcionando perfeitamente com o tempo resolvi criar um novo projeto maven e transferir as classes do projeto inicial para o novo e foi ai que meu problema começou.
Toda vez que tento inserir um registro no banco de dados firebird o comando
PreparedStatement.execute
me retorna um erro Exception occurred in target VM: GDS Exception. 335544665. violation of PRIMARY or UNIQUE KEY constraint "PK_PRODUTO" on table "PRODUTO" Problematic key value is ("ID" = 457101)
.
Estou parando a execução do projeto e verificando se o registro já existe e mesmo dessa forma da erro. Engraçado e que no projeto antigo esta tudo normal executa numa boa
public boolean Inserir (Connection c , Produto pro ){
try {
PreparedStatement pst = c.prepareStatement("insert into PRODUTO ( ID, TIPO, FK_PRODUTO_SUBGRUPO, FK_PRODUTO_UNIDADE, DESCRICAO, STATUS, OBSERVACAO, ESTOQUE_MAXIMO, ITENS_CAIXA, FK_CLASSIFICACAO_FISCAL, DATA_CADASTRO, FK_PRODUTO_MARCA, SUBSTITUICAO_TRIB_RETIDO, REFERENCIA, DESCONTO_MAXIMO, PESO_BRUTO, PESO_LIQUIDO, CUSTO, FK_LISTA_SERVICO_ITEM, FK_PRODUTO_COR, FK_PRODUTO_TAMANHO, CUSTO_MEDIO, CUSTO_DOLAR, FK_PRODUTO_UNIDADE_2, CUBAGEM, CUSTO_ULTIMO, PERCENTUAL_VENDA_SERVICO, PORCAO_POR_PESSOA, TEMPO_PREPARO, QUANTIDADE, GUARNICOES, FK_PRODUTO_ESPECIFICACAO, ISS_PERCENTUAL, CODIGO_PESO, UTILIZA_BALANCA_PESO, ARREDONDAMENTO_TRUNCAMENTO, PRODUCAO_PROPRIA_TERCEIROS, SITE_UTILIZA, FK_CLASSIFICACAO_SEM_SIMILAR, FK_CLASSIFICACAO_IPI, EMBALAGEM_QUANT_ITENS , VALIDADE_DIAS , VALIDADE_TIPO, VALOR_NUTRICIONAL , FK_PRODUTO_COLECAO, TIPO_REFEICAO ) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? )");
pst.setInt(1,pro.getId());
pst.setShort(2,pro.getTipo());
if (pro.getFk_produto_subgrupo()== 0 ) {
pst.setNull(3,java.sql.Types.INTEGER);
} else {
pst.setInt(3,pro.getFk_produto_subgrupo());
}
pst.setInt(4,pro.getFk_produto_unidade());
pst.setString(5, pro.getDescricao());
pst.setInt(6,pro.getStatus());
pst.setString(7, pro.getObservacao());
pst.setBigDecimal(8, pro.getEstoqueMaximo());
pst.setBigDecimal(9, pro.getItensCaixa());
pst.setInt(10,pro.getFk_classificacao_fiscal());
pst.setDate(11, new java.sql.Date(pro.getDataCadastro().getTime()));
if (pro.getFk_produto_marca()== 0) {
pst.setNull(12,java.sql.Types.INTEGER);
} else {
pst.setInt(12,pro.getFk_produto_marca());
}
pst.setString(13, pro.getSubstituicaoTribRetido().toString());
pst.setString(14, pro.getReferencia());
pst.setBigDecimal(15, pro.getDescontoMaximo());
pst.setBigDecimal(16, pro.getPesoBruto());
pst.setBigDecimal(17, pro.getPesoLiquido());
pst.setBigDecimal(18, pro.getCusto());
if (pro.getFk_lista_serviço_item()==0) {
pst.setNull(19, java.sql.Types.INTEGER);
} else {
pst.setInt(19,pro.getFk_lista_serviço_item());
}
if(pro.getFk_produto_cor() == 0 ){
pst.setNull(20, java.sql.Types.INTEGER);
} else {
pst.setInt(20,pro.getFk_produto_cor());
}
if (pro.getFk_produto_tamanho()==0) {
pst.setNull(21,java.sql.Types.INTEGER);
} else {
pst.setInt(21,pro.getFk_produto_tamanho());
}
pst.setBigDecimal(22, pro.getCustoMedio());
pst.setBigDecimal(23, pro.getCustoDolar());
if (pro.getFk_produto_unidade_2() == 0) {
pst.setNull(24,java.sql.Types.INTEGER);
} else {
pst.setInt(24,pro.getFk_produto_unidade_2());
}
pst.setBigDecimal(25, pro.getCubagem());
pst.setBigDecimal(26, pro.getCustoUltimo());
pst.setBigDecimal(27, pro.getPercentualVendaServico());
pst.setInt(28,pro.getPorcaoPorPessoa());
if (pro.getTempoPreparo() == null) {
pst.setNull(29 , java.sql.Types.DATE);
} else {
pst.setDate(29, new java.sql.Date(pro.getTempoPreparo().getTime()));
}
pst.setBigDecimal(30, pro.getQuantidade());
pst.setInt(31,pro.getGuarnicoes());
if (pro.getFk_produto_Especificacao()==0) {
pst.setNull(32,java.sql.Types.INTEGER);
} else {
pst.setInt(32,pro.getFk_produto_Especificacao());
}
pst.setBigDecimal(33, pro.getIssPercentual());
if (pro.getCodigoPeso()==0) {
pst.setNull(34,java.sql.Types.INTEGER );
} else {
pst.setInt(34, pro.getCodigoPeso());
}
pst.setString(35,pro.getUtilizaBalancaPeso().toString());
pst.setShort(36,pro.getArredondamentoTruncamento());
pst.setShort(37,pro.getProducaoPropriaTerceiros());
pst.setString(38,pro.getSiteUtiliza().toString());
if (pro.getFk_classificacao_sem_similar()== 0) {
pst.setNull(39,java.sql.Types.INTEGER);
} else {
pst.setInt(39,pro.getFk_classificacao_sem_similar());
}
if (pro.getFk_classificacao_ipi()==0) {
pst.setNull(40,java.sql.Types.INTEGER);
} else {
pst.setInt(40,pro.getFk_classificacao_ipi());
}
pst.setBigDecimal(41, pro.getEmbalagemQuantItens());
pst.setShort(42,pro.getValidadeDias());
pst.setInt(43,pro.getValidadeTipo());
pst.setBigDecimal(44, pro.getValorNutricional());
if (pro.getFk_produto_colecao()==0) {
pst.setNull(45,java.sql.Types.INTEGER);
} else {
pst.setInt(45,pro.getFk_produto_colecao());
}
pst.setShort(46, pro.getTipoRefeicao());
pst.execute();
return true;
} catch (Exception e) {
return false;
}
}