1
resposta

Erro de ArrayList

Erro é o seguinte:

Exception in thread "main" java.lang.ClassCastException: class java.util.Arrays$ArrayList cannot be cast to class br.com.alura.jpa.modelo.conta.Categoria (java.util.Arrays$ArrayList is in module java.base of loader 'bootstrap'; br.com.alura.jpa.modelo.conta.Categoria is in unnamed module of loader 'app')
    at br.com.alura.jpa.modelo.conta.Movimentacao.setCategoria(Movimentacao.java:34)
    at br.com.alura.jpa.testes.TestaRelacionamentoMovimentacaoCategoria.main(TestaRelacionamentoMovimentacaoCategoria.java:31)

Código está EXATAMENTE igual ao do vídeo, tive que inclusive criar um ArrayList de categorias na classe Movimentação pois não havia sido criada antes.

Classe movimentacao:

package br.com.alura.jpa.modelo.conta;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

@Entity
public class Movimentacao {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Enumerated(EnumType.STRING)
    private TipoMovimentacao tipoMovimentacao;
    private LocalDateTime data;
    private String descricao;
    private BigDecimal valor;
    private Categoria categoria;

    public Categoria getCategoria() {
        return categoria;
    }

    public void setCategoria(List<Categoria> list) {
        this.categoria = (Categoria) list;
    }

    @ManyToOne
    private Conta conta;

    public Conta getConta() {
        return conta;
    }

    public void setConta(Conta conta) {
        this.conta = conta;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public BigDecimal getValor() {
        return valor;
    }

    public void setValor(BigDecimal valor) {
        this.valor = valor;
    }

    public TipoMovimentacao getTipoMovimentacao() {
        return tipoMovimentacao;
    }

    public void setTipoMovimentacao(TipoMovimentacao tipoMovimentacao) {
        this.tipoMovimentacao = tipoMovimentacao;
    }

    public LocalDateTime getData() {
        return data;
    }

    public void setData(LocalDateTime data) {
        this.data = data;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

}
1 resposta

Acredito que esse erro não é referente a essa classe e sim ao TestaRelacionamentoMovimentacaoCategoria, pelo que eu li tem algum import seu errado na classe TestaRelacionamentoMovimentacaoCategoria