Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida método salvar

Por que no método salvar há uma instanciação de cliente e conta? Haja vista que a variável cliente nem está sendo utilizada neste caso. Testei sem a instanciação, e mesmo assim ocorre o salvamento no banco sem problemas.

    public void salvar(DadosAberturaConta dadosDaConta) {
        var cliente = new Cliente(dadosDaConta.dadosCliente());
        var conta = new Conta(dadosDaConta.numero(), cliente);

        String sql = "INSERT INTO conta (numero, saldo, cliente_nome, cliente_cpf, cliente_email)" + "VALUES (?, ?, ?, ?, ?)";

        try {
            PreparedStatement preparedStatement = connection.prepareStatement(sql);

            preparedStatement.setInt(1, conta.getNumero());
            preparedStatement.setBigDecimal(2, BigDecimal.ZERO);
            preparedStatement.setString(3, dadosDaConta.dadosCliente().nome());
            preparedStatement.setString(4, dadosDaConta.dadosCliente().cpf());
            preparedStatement.setString(5, dadosDaConta.dadosCliente().email());

            preparedStatement.execute();

        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

outro detalhe: não seria melhor em vez de ser de ser preparedStatement.setInt(1, conta.getNumero()); ser preparedStatement.setInt(1, dadosDaConta.numero()); ? Qual a diferença?

1 resposta
solução!

Lucas, tudo bem? Tem que verificar se houve o relacionamento da entidade cliente e conta Pelo o que vejo você está fornecendo valor para conta por isso está efetuando o processo de salvar em conta

Sobre o detalhe questionado, tem diferenças Primeiro o dadosDaConta.numero é um parametro que você recebe externo no cabeçalho do seu metodo o conta.getNumero está recebendo esse valor que você pegou o dadosDaConta.numero Sendo assim atribuindo a sua entidade o valor do DTO