Auto Relacionamento com hibernate annotations

8 respostas
thiagoaos

Olá, como eu faço mapeamento de auto relacionamento com hibernate annotations?

Tenho uma classe chamada ClasseMatMet onde dentro dela tem um atributo ClasseMatMedPai, poré não sei como auto relacionar, olhe a documentação e não vi nada do tipo.

Grato,
Thiago

8 Respostas

hls

Post antigo mas vou responder pq estava com a mesma dúvida e cheguei a esse tópico sem resposta, talvez evite que ocorra com outros…

Fiz um código bastante parecido e que funcionou:

@Entity

@Table(name = origem, schema = public)

public class Origem implements Serializable{
/**
* Chave Primaria - Identificador da Origem.
*/
@Id
@SequenceGenerator(name = "SEQ_ORIGEM", 
					sequenceName = "public.origem_id_orig_seq")
@GeneratedValue(strategy = GenerationType.SEQUENCE, 
				generator = "SEQ_ORIGEM")
@Column(name = "id_orig")
private int id;

/**
 * Id da Origem pai 
 */
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_pai", insertable = true, updatable = true, nullable = true)
private Origem origemPai;

Não foi preciso nada demais… Para mais informações: http://www.java-forums.org/java-tutorials/3182-hibernate-java-persistence.html

F

Mandou bem, véio! Tive o mesmo problema, mas agora o tópico tinha a sua resposta! :wink:

Me cadastrei aqui só para te parabenizar!

J

O tenho um problema similar, mas no meu caso o auto-relacionamento é de muitos a muitos porém preciso da combinação de duas e além disso esse auto-relacionamento tem um atributo. Vcs me poderiam ajudar com este quebracabeças?. Como posso fazer para solucionar o auto-relacionamento n-n com hibernate. Estou utilizando JAVA e estou me guiando do tutorial mas não tem nada parecido!

Grata,
Joana

F

Joana, se tem atributo você tem que pensar nessa relação como DOIS relacionamentos de 1:N ao invés de pensar como UM auto-relacionamento de N:N.

Sacou?

J

isso é que estou tentando fazer, mas o que acontece é que um dos atributos é a chave estrangeira u outro atributo é a chave principal da classe e u outro atributo é um String. Como fazo para mapear principalmente as chaves tanto estrangeira como principal numa so classe?

Grata,
Joana

F

Joana, não será em uma só classe. Você terá duas classes, agora.

Essa tabela “auxiliar” precisará ser mapeada.

Esse é o lance!

Abraços,

Danilo

H

Danilo estou com o mesmo problema da Joana, criei os dois relacionamentos 1:n mas não consegui resolver será q vc poderia me enviar um exemplo.

Valeu !!!

favoratti:
Joana, não será em uma só classe. Você terá duas classes, agora.

Essa tabela “auxiliar” precisará ser mapeada.

Esse é o lance!

Abraços,

Danilo

J

Danilo, vc consiguiu solucionar seu problema do auto-relacionamento. Eu ainda não consegui!. Será que vc tem alguma sugestão?

Grata

Criado 13 de setembro de 2006
Ultima resposta 28 de mai. de 2008
Respostas 8
Participantes 5