Como mapear chave composta hibernate annotations

2 respostas
C

pessoal, tenho uma tabela que a chave primaria seria id_curso, id_aluno,
como posso mapear isso em anotações do hiberante?

Grato

Celso

2 Respostas

zepunk

esta tabela seria referente a vários alunos para vários cursos ?

Digamos que usuario tenha vários cursos e um curso tem vários alunos

na sua classe Curso:

private Set<Aluno> alunos;

	@ManyToMany
	@JoinTable(name = "TABELA_VARIOS_PARA_VARIOS", uniqueConstraints = { @UniqueConstraint(columnNames = {
			"idCurso", "idAluno" }) }, joinColumns = @JoinColumn(name = "idCurso", referencedColumnName = "id_tabela_curso"), inverseJoinColumns = @JoinColumn(name = "idAluno", referencedColumnName = "id_tabela_aluno"))
	public Set<Aluno> getAlunos() {
		return alunos;
	}

Classe Aluno

private Set<Curso> cursos;
	
	@ManyToMany(mappedBy="alunos")
	public Set<Curso> getCurso() {
		return cursos;
	}
javaBeats

O google, e a documentação do Hibernate, são seus amigos!

http://www.hibernate.org/hib_docs/annotations/reference/en/html/entity.html#d0e1596

Tem aí exatamente o que você precisa.

Rodrigo

[PS: Respondi com base no título do seu post… realmente, só acertando o relacionamento, você resolve seu problema, sem precisar criar uma chave composta. Mas se um dia precisar, aí está.]

Criado 16 de agosto de 2006
Ultima resposta 16 de ago. de 2006
Respostas 2
Participantes 3