Como retornar Generated Keys com relacionamento de classes?
26/12/2020
0
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)