Erro de projeto? violation of PRIMARY or UNIQUE KEY constraint "PK_PRODUTO"

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;
    }



}

Tem certeza que você não modificou alguma outra coisa do projeto e não se deu conta? Essa mensagem não parece ter relação com o maven.

Pois é, tudo indica que você inseriu duas vezes o mesmo produto na tabela, com ID já existente.

Desculpa a demora em Responder
Vou adicionar o código da classe o único método que uso e PreparedStatement.execute e mesmo com a base limpa ele continua retornando esse erro. acho que talvez o problema seja nas dependências que o maven baixa para o aplicativo

Desculpa a demora em Responder
Usei a função de comparação de código do próprio netbeans ate fiz umas modificações mas foi na classes de view nada que use o banco de dados

Bem, o erro é de violação de constraint, ou seja, é relacionado com o banco de dados, provavelmente deve ser na coluna ID. Que lógica você usa na geração do ID? O problema é que está sendo gerado um ID que já existe no banco, daí ocorre a violação da chave primária. Mas o que é estranho é esse fato do erro ocorrer apenas quando você usa o Maven.

Segue as dependências que estou usando não sei se os drivers do firebird são corretos

mysql mysql-connector-java 5.1.37 org.firebirdsql.jdbc jaybird-jdk18 2.2.7 org.hibernate hibernate-core 5.0.4.Final org.hibernate hibernate-entitymanager 5.0.4.Final org.hibernate hibernate-jpamodelgen 5.0.4.Final javax.transaction jta 1.1

Se está ocorrendo mesmo com a base limpa, o código deve estar inserindo duas vezes o mesmo id dentro da mesma execução. Debuga passo a passo e veja

Já debuguei ate o método PreparedStatement.execute para dentro dele nunca fui mas ate ali nada vou verificar dentro dele

nao verifique dentro nao
verifique quantas vezes ele ta chamando execute desse prepared statement. ou colocque um log toda vez que esse dao/classe for chamada.

Para gerar o id eu criei esse método que usa um gerador de id do banco

 public Integer Index (Connection c) {
        
    try {
        Statement st = c.createStatement();
        ResultSet rs = st.executeQuery("select GEN_ID(GEN_PRODUTO,1) from RDB$DATABASE");
        rs.next();
        String s = rs.getString(1);
        s = s.concat("01");
        Integer i = Integer.parseInt(s);            
        return i ;
    
    } catch (Exception e) {
    
    return null;
        
    }

}

Desculpa a ignorância mas como faço isso ???