1
resposta

Relação OneToMany e ManuToOne

Olá, tudo bem? Estou com uma dúvida: Imagine o seguinte cenário (O inventário de uma biblioteca):

Tenho que organizar os livros na prateleira correta e quando consultado por um usuário da biblioteca conseguir encontrar o livro rapidamente.

Tenho 2 classes, a primeira Estante e a segunda Livro:

1) Quero desenvolver uma aplicação que me traga um formulário onde eu cadastre o livro e informe a estante que ele está alocado.

2) Quero um segundo formulário onde eu cadastre uma estante e possa selecionar os livros para inserir nela.

Quanto a criação das classes, entendo que na classe livro terei um atributo do tipo Estante e a anotação para gerar o relacionamento será @ManyToOne.

Agora após ter criado a primeira classe Livro, vou criar a segunda classe chamada Estante. -Dúvida: Nesta segunda classe tenho que ter um atributo do tipo List pois se refere a lista dos livros da estante, terei também que anotar este atributo com @OneToMany se quiser criar a função de criar a estante e depois inserir os livros? E se isso for necessário, o que a execução do código irá causar na geração das tabelas no DB com relação a associações?

att.:

Gonzaga

1 resposta

Oi Gonzaga, tudo bem?

Pela descrição, eu imagino que você deseja fazer um mapeamento bi-direcional, que dependendo do seu problema será um pouco mais complicado, o que diria a você, é que crie a classe estante, e nela ter um relacionamento oneToMany, conforme o código abaixo:

public class Estante () {

    ... demais atributos
    @OneToMany
    private List<Livro> livros;
    ... getters and setters
}

acho que isso já resolve seu problema. Espero ter ajudado :)