GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Relacionamento Hibernate JSF

Tags: #<Tag:0x00007f6d44595e08> #<Tag:0x00007f6d44595ca0> #<Tag:0x00007f6d44595b60>

Boa noite à todos!

Estou com uma grande dificuldade em entender como faço este relacionamento:

Tenho uma tela conforme abaixo, onde na primeira aba será cadastrada uma atividade, e na segunda aba, está atividade deverá ser traduzida para cada idioma já cadastrado no sistema:

Portanto, tenho que fazer um relacionamento entre três entidades, sendo elas:
*Atividade
Id_Atividade

*Idioma
Id-Idioma

*AtividadeIdioma
Id_AtividadeIdioma
Id_Atividade
Id-Idioma

Dentro deste cenário, minhas dificuldades são:
1º - Como fazer o relacionamento com hibernate no JSF
2º - Como fazer este relacionamento sem que o usuário tenha que digitar na aba de Atividade por Idioma a atividade, ou seja, deveria entender que tenho os idiomas português e Inglês e pegar a atividade que digitei na aba de atividade:

Alguém pode me ajudar?

Obrigado

Cada atividade estará ligada a 0 ou mais idiomas e cada idioma a 0 ou várias atividades?
Você precisa dessa entidade, AtividadeIdioma? Qual a função dela no teu sistema?
Se não precisa desta classe, pode usar, apenas, a anotação @JoinTable que, obrigatoriamente, exigirá duas @JoinColumn, uma representando a classe Atividade e a outra representando a classe Idioma.

Bom dia Darlan!

Primeiramente, obrigado pela atenção!

Cada atividade estará ligada a 0 ou mais idiomas e cada idioma a 0 ou várias atividades?
Na realidade, cada Atividade terá obrigatoriamente ao menos uma AtividadeIdioma
Exempo:
#Atividade:
*Reunião

#Idioma:
     *Espanhol
     Inglês

#AtividadeIdioma
     *Espanhol  -> Reencuentro
     *Inglês        -> Meeting

Você precisa dessa entidade, AtividadeIdioma? Qual a função dela no teu sistema?
Sim, preciso! Ela terá a funcionalidade de ter a atividade em cada idioma existente no sistema.

Novamente obrigado pela atenção!
Se conseguir me ajudar nisso, ficarei extremamente grato!

Falando especificamente de objetos (esqueça o banco de dados, por enquanto), você precisa dessa classe AtividadeIdioma? Não pode registrar as atividades apenas na classe Atividade?
Em geral, pensar em dois mundos totalmente opostos como o OO e as tabelas de um banco de dados só vai gerar dor de cabeça.

Se eu conseguir gravar os valores no bando sem a entidade AtividadeIdioma, seria o mundo ideal!

O problema é que não sei como fazer isso!

Abraço!

Cara, tem muita coisa que foi feita por gente que não sabia como fazer.
De novo: você está pensando estruturado demais para quem quer trabalhar com hibernate. Lembre-se o hibernate é um framework ORM - object relational mapping.
Se você só pensar na parte do relational, melhor deixar o java de lado e ir pra outra linguagem, como C, que não é OO.
Agora, se quiser mesmo utilizar o hibernate/JPA de uma maneira adequada, esqueça o banco de dados.