Fórum Como retornar Generated Keys com relacionamento de classes? #613632
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 :)