Объект: неизвестный тип объекта - PullRequest
0 голосов
/ 02 мая 2020

Так .... у меня есть объект Aula, который я хочу создать, и затем я хочу продолжать использовать JPA. Я даю необходимые параметры, у меня есть постоянство. xml настроен с этим классом, и у меня есть Entity Manager

package business;


@Entity
@NamedQueries({
    @NamedQuery(name=Aula.FIND_BY_ID, query="SELECT a FROM Aula a WHERE a.id = :" + Aula.AULA_ID),
    @NamedQuery(name=Aula.FIND_BY_NOME, query="SELECT a FROM Aula a WHERE a.nome = :" + Aula.AULA_NOME),
    @NamedQuery(name=Aula.FIND_ALL, query="SELECT a FROM Aula a"),
})
@Table(name = "AULA")
public class Aula {

    public static final String FIND_BY_ID = "Aula.findById";
    public static final String AULA_ID = "id";

    public static final String FIND_BY_NOME = "Aula.findByNome";
    public static final String AULA_NOME = "nome";

    public static final String FIND_ALL = "Aula.findAll";

    @Id @GeneratedValue(strategy = AUTO)
    @Column(name = "ID")
    private int id;

    @Column(name = "NOME")
    private String nome;

    @Convert(converter = LocalTimeAttributeConverter.class)
    @Column(name = "HORAINICIO")
    private LocalTime horaInicio;

    @Column(name = "DURACAO")
    private int duracao;

    @Column(name = "NRALUNOS")
    private int nrAlunos;

    @ManyToOne(cascade = ALL)
    @JoinColumn(name = "INSTALACAO_ID", referencedColumnName = "ID")
    private Instalacao instalacao;

    @Enumerated(EnumType.STRING)
    @Column(name = "ESTADO")
    private Estado estado;

    @Enumerated(EnumType.STRING)
    @ElementCollection(fetch = EAGER)
    @JoinTable(name = "AULA_DIASSEMANA", joinColumns = @JoinColumn(name = "Aula_ID"))
    @Column(name = "DIASSEMANA", nullable = false)
    private List<DiaSemana> diasSemana;

    @ManyToOne
    private Modalidade modalidade;

    @OneToMany(cascade = ALL, fetch = FetchType.EAGER) @JoinColumn(name = "AULA_ID")
    private List<AulaAtiva> aulasMarcadas;

    @OneToMany(cascade = ALL, fetch = FetchType.EAGER) @JoinColumn(name = "AULA_ID")
    private List<Inscricao> regulares;

    Aula(){}

    public Aula(Modalidade modalidade, String nomeAula, List<String> dias, LocalTime horaInicio, int duracao) throws AppException {
        this.diasSemana = new ArrayList<>();
        this.aulasMarcadas = new ArrayList<>();
        this.regulares = new ArrayList<>();
        criarDias(dias);
        this.estado = Estado.INATIVA;
        this.nome = nomeAula;
        this.modalidade = modalidade;
        this.duracao = duracao;
        this.horaInicio = horaInicio;
    }

    /**
     * Define a instalacao que esta aula ira decorrer
     * @param instalacao - instalacao que esta aula ira decorrer
     */
    public void setInstalacao(Instalacao instalacao) {
        this.instalacao=instalacao;
    }

    private void criarDias(List<String> dias) throws AppException {
        for(String dia: dias) {
            switch(dia.toLowerCase()) {
            case "segunda": 
                this.diasSemana.add(DiaSemana.SEGUNDA);
                break;
            case "terca": 
                this.diasSemana.add(DiaSemana.TERCA);
                break;
            case "quarta": 
                this.diasSemana.add(DiaSemana.QUARTA);
                break;
            case "quinta": 
                this.diasSemana.add(DiaSemana.QUINTA);
                break;
            case "sexta": 
                this.diasSemana.add(DiaSemana.SEXTA);
                break;
            case "sabado": 
                this.diasSemana.add(DiaSemana.SABADO);
                break;
            case "domingo": 
                this.diasSemana.add(DiaSemana.DOMINGO);
                break;
            default:
                throw new AppException("Dia nao existente");
            }
        }   
    }
}

Я делаю это для создания и сохранения нового объекта (например, EntityManager)

    Aula aula = new Aula(modalidade, nomeAula, dias, horaInicio, duracao);
    em.persist(aula);

И когда я пытаюсь упорствовать, я получаю это:

Object: business.Aula@e3b3b2f is not a known entity type.

Может кто-нибудь помочь мне, пожалуйста? Я не могу понять, почему это происходит и как это исправить

...