Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Criando atributos na classe Conta

Segui todos as aula fazendo os exemplos do professor exatamente igual, porém, ao iniciar a aula 7, o professor pede para adicionarmos o método "getMovimentacoes" e ao fazê-lo criamos um atributo "private List movimentacoes" que receberá o valor de getMovimentacoes. Porém, ao criar método e atributo, e fazendo os devidos imports de java.util List e do OneToMany, quando rodo o programa, o eclipse já acusa problemas de que não existe a coluna movimentacoes na tabela conta, porém na aula, o professor nao teve nenhum tipo de erro parecido com este, como resolvo isso? Devo apagar o banco e reconstruí-lo?

Segue a minha classe conta:

package financas.modelo;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Conta {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;
    private String titular;
    private String numero;
    private String banco;
    private String agencia;

    @OneToMany
    private List<Movimentacao> movimentacoes;

    public Integer getId() {
        return id;
    }
    public String getTitular() {
        return titular;
    }
    public String getNumero() {
        return numero;
    }
    public String getBanco() {
        return banco;
    }
    public String getAgencia() {
        return agencia;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public void setTitular(String titular) {
        this.titular = titular;
    }
    public void setNumero(String numero) {
        this.numero = numero;
    }
    public void setBanco(String banco) {
        this.banco = banco;
    }
    public void setAgencia(String agencia) {
        this.agencia = agencia;
    }
    public List<Movimentacao> getMovimentacoes() {
        // TODO Auto-generated method stub
        return movimentacoes;
    }

}
3 respostas

Boa tarde !

pode ser que seu problema seja pelo motivo de não instanciar um arraylist para movimentações , tente isso :

@OneToMany
 private List<Movimentacao> movimentacoes = new ArrayList<>();

Caso não funcione, coloque aqui o log gerado no console.

Até mais!

no persistence.xml muda o hibernate.hbm2ddl.auto para update, se vc mapear classes ou campos sem existir tabelas ou colunas correspondentes no bd vai dar erro mesmo

    <property name="hibernate.hbm2ddl.auto" value="update" />
solução!

Ola, pessoal! Tentei implementar o que o Lucas disse, porém, sem sucesso. Ricardo, o meu hibernate.hbm2ddl.auto já estava para update desde o incio.

E acabei descobrindo o problema. O problema é que uso o PostgreSQL, e ele não aceita uma List<Object>pois ele não sabe o que fazer com isso, ele não cria a classe conta Conta_movimentacao, por exemplo. Porém usando a notação "mappedBy" tudo se resolveu de maneira rápida.

Obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software