Como retornar Generated Keys com relacionamento de classes?
Olá pessoal, estou com um uma dúvida. Na minha aplicação simples, eu relaciono duas classes assim como no banco de dados. Porém meu método de salvar está com RETURN_GENERATED_KEYS não retorna justamente o campo que faz ligação com a outra classe. Embora ele salve no banco de dados, ele não retorna esse resultado e toda vez eu tenho que reiniciar o tomcat pra ele exibir. Também fiz o teste com o Junit, ele retorna null nesse campo quando peço para puxar a descrição.
Minha classe Junit como exemplo:
public void salvar(Produtos p) { try { Connection conectar = ConnectionFactory.conectar(); PreparedStatement ps = null; String sql = "insert into produtos (descricao, fornecedor, preco, quantidade) values (?, ?, ?, ?)"; ps = conectar.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); ps.setString(1, p.getDescricao()); ps.setInt(2, p.getFornecedor().getIdfornecedores()); //faz a ligacao com a outra classe ps.setDouble(3, p.getPreco()); ps.setInt(4, p.getQuantidade()); ps.executeUpdate(); ResultSet rs = ps.getGeneratedKeys(); if(rs.next()) { p.setIdprodutos(rs.getInt(1)); } } catch (Exception e) { e.printStackTrace(); } }
Minha classe Junit como exemplo:
@Test public void salvar() { Produtos p = new Produtos(); Fornecedores f = new Fornecedores(); p.setDescricao("Teste12"); f.setIdfornecedores(6); p.setFornecedor(f); p.setPreco(15.90); p.setQuantidade(50); pdao.salvar(p); System.out.println("id: "+p.getIdprodutos()); System.out.println("descricao:"+p.getDescricao()); System.out.println("fornecedor: "+p.getFornecedor().getDescricao()); System.out.println("preco: "+p.getPreco()); System.out.println("qtde: "+p.getQuantidade()); }
Thiago Souza
Curtidas 0