Como fazer esse mapeamento?

4 respostas
zorba
boa tarde pessoal estou com a seguinte duvida: como fazer o seguinte mapeamento no hibernate tenho a classe Horario, que possui os campos dia, inicio, fim, todos String. tenho outra classe, Matricula, que fica assim:
@Entity
public class Matricula implements Serializable {
	
	@Id 
	@SequenceGenerator(name="SEQ_MATRICULA", sequenceName="SEQ_MATRICULA")
	@GeneratedValue(generator="SEQ_MATRICULA")
	private Long id;
	
	@ManyToOne
	private Curso curso;
	
	@OneToMany(cascade={CascadeType.ALL, CascadeType.PERSIST})
	private List<Horario> horarios = new ArrayList<Horario>();

e o aluno, que contem várias matriculas (de vários cursos)
gostaria de saber como faz o seguinte mapeamento na classe Aluno
private Map> matriculas;
e se existe um modo mais facil
obrigado

4 Respostas

fabiocsilva

Você criou uma classe Matricula com o curso e a lista de horários, e depois resolveu usar um Map em Aluno? Não entendi.

Jose_Donizetti

Não seria mais simples você fazer o mapeamento em Aluno:

private List matriculas;

Afinal matricula, ja tem tanto o curso quanto os horarios!
Na minha visão seria o mesmo que este map doido que comentou. :stuck_out_tongue:

zorba

pois é fabio, mas se eu fosse usar o map, não colocaria curso na matricula.
o problema de usar a list seria caso o usuário decidir adicionar um horário em um curso específico. não sei como fazer isso de uma forma correta

fabiocsilva

Entendi, nesse caso você tem que decidir a quem pertence o atributo horário.
Se não pertencer a ninguém, basta juntar curso e horário na classe matrícula, criando um List.

Criado 19 de julho de 2010
Ultima resposta 19 de jul. de 2010
Respostas 4
Participantes 3