Pessoal, preciso de uma ajuda de vcs sobre como mapear classes muitos pra muitos, só que com atributo entre esse relacionamento.
Um exemplo: digamos que eu tenha a classe Leitor e uma classe Livro. O relacionamento seria um Leitor pode ter muitos Livros e um Livro pode ter muitos Leitores.
Digamos que eu queira colocar um atributo “data de leitura” entre esse relacionamento, seria tipo:
Leitor -> leitor_livros <- Livro
Aonde iria o atributo data de leitura?
neste caso acredito que como a data da leitura do livro foi efetuada por um leitor então ficaria no leitor… já em questão de modelagem de banco o melhor e fazer uma nova tabela que tenha 3 campos um id(pk) e duas chaves estrangeiras uma para livros e outra para leitor… isto facilita bem mais do que usar chaves compostas…
Mas veja que um Leitor pode ler vários livros. A classe Leitor (ou Pessoa) não pode ter o atributo “data de leitura” porque não vai ser uma data de leitura somente.
André, veja se esse link pode ajudá-lo:
[quote=ederson.js]André, veja se esse link pode ajudá-lo:
http://www.vaannila.com/hibernate/hibernate-example/hibernate-mapping-many-to-many-1.html[/quote]
Obrigado, Ederson, mas esse exemplo é sem atributo no relacionamento.
Mas veja que um Leitor pode ler vários livros. A classe Leitor (ou Pessoa) não pode ter o atributo “data de leitura” porque não vai ser uma data de leitura somente.[/quote]
É verdade… sendo vários livros ele não terá como ler vários na mesma hora… então vc pode criar uma terceira classe chamada Leitura onde terá a data da leitura, sendo que a mesma classe tem um relacionamento de 1 para 1 com leitor e livro… isto resolve seu problema…
Mas veja que um Leitor pode ler vários livros. A classe Leitor (ou Pessoa) não pode ter o atributo “data de leitura” porque não vai ser uma data de leitura somente.[/quote]
É verdade… sendo vários livros ele não terá como ler vários na mesma hora… então vc pode criar uma terceira classe chamada Leitura onde terá a data da leitura, sendo que a mesma classe tem um relacionamento de 1 para 1 com leitor e livro… isto resolve seu problema…[/quote]
Vc tem razão, como um amigo aqui do trabalho me disse, quando um relacionamento entre classes tem um atributo, uma nova classe deve ser criada.