Pegar dado de outra entidade, realizar subtração e salvar

Boa noite pessoal, estou precisando de uma ajuda para executar uma conta. Eu tenho a classe “Conta” que possui um atributo chamado “saldoInicial” .
Na classe “Lancamento” tenho um atributo “valor”.

Oque eu gostaria de fazer é na classe LancamentoController, realizar um débito e atualizar o valor do “saldoAtual”.
Minha lógica era apanhar o valor de saldoInicial , subtrair valor e o resultado jogar em saldoAtual.

O problema é que não consigo pegar o valor de saldoInicial, no momento que vou adicionar o Lancamento.

Aguardo uma orientação.

Conta.java

@Entity
@Table(name = "conta", schema = "financeiro")
public class Conta implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long cod;    
    @Column(name = "saldo_inicial")
    private float saldoInicial;
    private float saldoAtual;
    @OneToMany(mappedBy = "conta")
    public List<Lancamento> lancamentos;
    
    //Construtor e Getters/Setters omitidos
    

}

Lancamento.java

@Entity
@Table(name = "lancamento", schema = "financeiro")
public class Lancamento implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)

    private Long cod;    
    @Column(precision = 10, scale = 2)
    private float valor;
    @ManyToOne
    private Conta conta;

    //Construtor e Getters/Setters omitidos

Método “adiciona” em LancamentoController.java

@Post
    @Acesso({TipoPerfil.ADMINISTRADOR, TipoPerfil.USUARIO})
    public void adiciona(Lancamento lancamento) {
       
            this.daoFactory.getLancamentoDao().salva(lancamento);

        
        result.redirectTo(this).lista();
    }

Em conta você cria um método para adicionar o lancamento:

public void adicionarLancamento(Lancamento lancamento){
     this.lancamentos.add(lancamento);
      lancamento.setConta(this);
     thi.saldoAtual = saldoInicial - lancamento.getValor();
}

Agora no seu método adicionar você chama conta.adicionarLancamento(); e salva tudo.

Uma dica é estudar sobre Cascade. Com ele, você pode configurar para salvar a conta no banco de dados e automaticamente irá salvar/atualizar os lançamentos relacionados.