Foreign key sendo passada como null, usando JDBC + SQL SERVER 2008

0 respostas
D

Boa tarde a todos.
Estou trabalhando com JDBC e SQL SERVER 2008, e estou tentando armazenar os dados do contato de um artesão,
porém estou tendo dificuldades de conseguir pegar a foreign key da tabela 'contato', não sei exatamente ql referência que devo usar na query e tentei usar SCOPE_IDENTITY())... Não sei se é a correta.
Na tabela de 'artesão' eu defini a primary key 'IdArtesao' como identity, pelo que sei ele deveria levar o mesmo valor de primary key quando é referênciado na tabela 'contato' como foreign key, porém quando tento inserir ocorre o seguinte erro.

"Erro: Cannot insert the value NULL into column 'idArtesao', table 'Artesanato.dbo.contato'; column does not allow nulls. INSERT fails."

Lembrando que o cadastro do artesão apenas, ocorre normalmente.

Abaixo segue o código:

public void inserirArtesao (Artesao art) throws Exception {
        
        abrirConexao();
        
        
            stmt = conn.prepareStatement("INSERT INTO artesao VALUES (?,?,?,?)");
            
            stmt.setString(1,  art.getPAB());
            stmt.setString(2,  art.getNome());
            stmt.setString(3,  cd.converterDataParaString(art.getDataNascimento()));
            stmt.setBoolean(4, art.getSexo());
            stmt.execute();
            stmt.close();
            
            //stmt = conn.prepareStatement("INSERT INTO contato VALUES (?,?,?,?)");
            stmt = conn.prepareStatement("INSERT INTO contato VALUES (?,?,?,?,SCOPE_IDENTITY())");

            stmt.setString(1,art.getContato().getEmail());
            stmt.setString(2,art.getContato().getTelefone());
            stmt.setString(3,art.getContato().getCelular());
            stmt.setString(4,art.getContato().getObservacao());
            stmt.execute();
            stmt.close();
                   
        fecharConexao();
    }
Criado 27 de maio de 2015
Respostas 0
Participantes 1