Com o uso de mappedBy
para gerar um relacionamento OneToMany
no exemplo empregado, não consegui entender o conceito de Forte e Fraco. Qual o produto disso? Teria como dar um exemplo prático?
Com o uso de mappedBy
para gerar um relacionamento OneToMany
no exemplo empregado, não consegui entender o conceito de Forte e Fraco. Qual o produto disso? Teria como dar um exemplo prático?
Oi Daniel, pensa assim. No seu mapeamento uma movimentação pertence a uma conta, aí vc foi lá e colocou a annotation @ManyToOne. Em algum momento vc sente a necessidade de, a partir de uma conta, buscar as movimentações, vai lá na classe conta e adiciona uma List<Movimentacao>
e anota com @OneToMany.
Para o hibernate, se vc não falar nada, isso é um novo relacionamento. Você está dizendo que quer relacionar uma conta com várias movimentações e ele vai dar um jeito de fazer isso ser verdade no banco de dados(criando uma tabela de relacionamento). Para contornar, você usa o atributo mappedBy da annotation.. Justamente para dizer para o hibernate que isso não é um novo relacionamento, é apenas a navegação bidirecional do relacionamento que já está mapeado pelo outro atributo.
Então, qualquer relacionamento que eu fizer do tipo, usando notações que tratam a cardinalidade entre duas tabelas, o comportamento default vai ser a criação de uma tabela intermediária, onde para que eu consiga fazer o relacionamento direto (que é o caso), eu tenho de usar o parâmetro mappedBy
no atributo. Aí a classe que receberá o parâmetro será sempre a classe que terá a chave estrangeira na tabela que o representa? Ou é o contrário, ou seja, será a classe que contém o atributo o qual o mappedBy
está relacionado que terá a tabela que a representa contendo a chave estrangeira?
Geralmente quem tem o mappedBy é a ponta que possui a annotation com o fim toMany :). Quando vc tem um relacionamento bidirecional, o lado toMany sempre é só um facilitador :).
Daniel tenta ver um pouco sobre cardinalidades de modelo relacional de banco de dados, se não você vai ficar perdido mesmo. Conhecer MER e DER é sempre importante.
Julio, o conceito relacional de cardinalidade eu entendo, na verdade só queria saber o efeito do mappedBy nas tabelas com relação ao que o Hibernate executa na presença dele, mas sem problemas. Vou finalizar esse post!