Problema com Mapeamento Hibernate-JPA

4 respostas
jeroqueiroz

Prezados,

Estou com a estrutura de Banco abaixo e com o seguintes mapeamentos e estou tendo erro toda vez que utilizo mapeamento do tipo OneToMany. Conseguem identificar onde esta o meu erro?

Não se preocupem com os atributos como public, pois isto esta ligado ao Framework que estou utilizando. A questão é os mapeamentos, pois se troco eles por OneToOne funciona tudo normal.

OBS: Fiz a modelagem separada somente para representar o que preciso, porém estou deixando a aplicação criar as tabelas com o JPA.

Classes Mapeadas: Aluno:
public class Aluno extends Model {
	
	@Required
	public String nome;
	
	@Required
	public String sobreNome;
	
	@Email
	public String email;
	
	@Phone
	public String telefone;
	
	@OneToMany
	public Turma turma;
	
	public String toString() {
		return nome +" "+ sobreNome;
	}

}
Professor:
public class Professor extends Model {
	
	@Required
	public String nome;
	
	@Phone
	public String telefone;
	
	@Email
	public String email;
	
	public String toString() {
		return nome;
	}

}
Disciplina:
public class Disciplina extends Model {
	
	@Required
	public String nome;
	
	@OneToMany
	public Professor professor;
	
	public String toString() {
		return  nome;
	}

}
Conteudo:
public class Conteudo extends Model {
	
	@Required
	public String conteudo;
	
	@Required
	@OneToOne
	public Disciplina disciplina;
	
	public String toString() {
		return conteudo;
	}

}
Frequencia:
public class Frequencia extends Model {
	
	@Required
	public boolean presente;
	
	@Required
	@OneToMany
	public Aula aula;
	
	@Required
	@OneToMany
	public Aluno aluno;
	
	public String toString() {
		return aluno.toString() +" / "+ aula.toString() +" / "+ presente;
	}

}
Aula:
public class Aula extends Model {
	
	@Required
	@OneToMany
	public Disciplina disciplina;
	
	@Required
	public Date dataAula;
	
	public String toString() {
		return disciplina +" - "+ dataAula;
	}

}
Nota:
public class Nota extends Model {
	
	@Required
	public Double nota;
	
	@Required
	@OneToMany
	public Aluno aluno;

	@Required
	@OneToMany
	public Disciplina disciplina;
	
	public String toString() {
		return  aluno.toString() +" / "+ disciplina.toString() +" / "+ nota;
	}
}
Turma:
public class Turma extends Model {
	
	@Required
	public String descricao;
	
	@Required
	public Integer ano;
	
	@Required
	public Integer semestre;
	
	public String toString() {
		return descricao;
	}

}

Agradeço a ajuda.

4 Respostas

Hebert_Coelho

E qual o erro?

jeroqueiroz

Acusa erro em todos os mapeamentos do tipo @OneToMany quando substituo por @OneToOne o erro para.

A mensagem de erro é a seguinte:

Hebert_Coelho

Olha só oq a mensagem diz:

Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: models.Nota.aluno

E olha oq vc fez:

@OneToMany public Aluno aluno;

Não é assim que se deve mapear relacionamento OneToMany.

Aqui explica como funcionam os relacionamentos com JPA: http://uaihebert.com/?p=1622

jeroqueiroz

Vlw. Vou dar uma lida.

Criado 6 de outubro de 2013
Ultima resposta 7 de out. de 2013
Respostas 4
Participantes 2