Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Video: Desvendando o JPA - Aula 6 - Mapeamento UM para MUITOS
Nesta vídeo aula faremos um mapeamento de UM para MUITOS.
Título:
Tempo: 00:14:24
Mini-Resumo: Nesta vídeo aula faremos um mapeamento de UM para MUITOS,. ou seja 1:N , muito utilizado quando falamos de relacionamentos, o mapeamento 1:N é expressado de forma singular no JPA que faz questão de conserva o bom entendimento do programador. Abordamos também o AUTOMATIC STATE DETECTION do JPA.
Exemplos construídos: Construídos o mapeamento da entidade Address em forma de LISTA para a entidade People, ou seja um People tem VARIOS Address. Simplesmente imperdível para entender o funcionamento do JPA.
Tecnologias Utilizadas: Java SE 6, NetBeans 6.5, JPA 1.0, Hibernate 3.3 e TopLink Essentials
Palavras chaves: netbeans6 jpa hibernate orm java j2se java6
Tempo: 00:14:24
Mini-Resumo: Nesta vídeo aula faremos um mapeamento de UM para MUITOS,. ou seja 1:N , muito utilizado quando falamos de relacionamentos, o mapeamento 1:N é expressado de forma singular no JPA que faz questão de conserva o bom entendimento do programador. Abordamos também o AUTOMATIC STATE DETECTION do JPA.
Exemplos construídos: Construídos o mapeamento da entidade Address em forma de LISTA para a entidade People, ou seja um People tem VARIOS Address. Simplesmente imperdível para entender o funcionamento do JPA.
Tecnologias Utilizadas: Java SE 6, NetBeans 6.5, JPA 1.0, Hibernate 3.3 e TopLink Essentials
Palavras chaves: netbeans6 jpa hibernate orm java j2se java6

6 COMENTÁRIOS
Manoel Cotts De Queiroz
olá Dyego,
Primeiro, excelente seus cursos.
Estou fazendo uns testes com os mapeamentos um para muitos e acontece que quando recupero as pessoas, vem duplicado, melhor, vem repetido. Se a Pessoa tiver 3 Enderecos, a lista de pessoas recuperadas vem repetida 3x a mesma pessoa. E fiz o mapeamento basicamente igual ao seu..
agradeço se puder reponder.. manoel
Primeiro, excelente seus cursos.
Estou fazendo uns testes com os mapeamentos um para muitos e acontece que quando recupero as pessoas, vem duplicado, melhor, vem repetido. Se a Pessoa tiver 3 Enderecos, a lista de pessoas recuperadas vem repetida 3x a mesma pessoa. E fiz o mapeamento basicamente igual ao seu..
agradeço se puder reponder.. manoel
[há +1 mês] -
Responder
[autor]
Dyego Souza Do Carmo
Já tentou mandar o "NetBeans" fazer engenharia reversa do seu banco ? Opção "Entity from Database", ai vc descobre o que pode estar de errado.
[há +1 mês] -
Responder
Manoel Cotts De Queiroz
olá Dyego, fiz o download do netbeans e segui sua sugestão.
mas, meu mapeamento está correto. Mesmo assim continua a trazer uma pessoa, para cada endereço... causando erro na lista de pessoas...
vou colocar os dois mapeamentos aqui, se puder dá uma olhada.
PEssoa: (o EAGER é proposital, pois, monto uma "tabela" com os endereços na consulta)
@OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, fetch=FetchType.EAGER)
private List listaEndereco;
Endereco:
@ManyToOne(optional=false)
@JoinColumn(name="id_pessoa", referencedColumnName="id_pessoa")
private Pessoa pessoa;
mas, meu mapeamento está correto. Mesmo assim continua a trazer uma pessoa, para cada endereço... causando erro na lista de pessoas...
vou colocar os dois mapeamentos aqui, se puder dá uma olhada.
PEssoa: (o EAGER é proposital, pois, monto uma "tabela" com os endereços na consulta)
@OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL, fetch=FetchType.EAGER)
private List
Endereco:
@ManyToOne(optional=false)
@JoinColumn(name="id_pessoa", referencedColumnName="id_pessoa")
private Pessoa pessoa;
[há +1 mês] -
Responder
[autor]
Dyego Souza Do Carmo
Muito estranho , está parecendo que o relacionamento está ao inverso... invés do relacionamento esta na tabela Enderecos ele esta na tabela pessoa ?
[há +1 mês] -
Responder

Enio Nunes
Olá, Dyego!
Estou com uma dúvida... Estou fazendo um relacionamento de Um para Muitos, entre duas tabelas: MovimentoLivro e ItensMovimentoLivro, sendo que em MovimentoLivro tenho um lista de ItensMovimentoLivro. No entanto, como coloquei o Id do MovimentoLivro para ser criado pelo banco, ao gravar o movimentoLivro eu insero a lista de ItensMovimentacaoLivro, e ao gravar no banco estou com o seguinte problema:
Na tabela itensMovimentacaoLivro tenho o id_Movimentacao_livro que é um referencia à classe MovimentacaoLivro, porém tal campo é gravado null. No método que gravo os dados quando mando gravar envio sem o ID (para que o banco grave), porém pensei que implementando a notação @OneToMany usando cascade quando o banco de dados gerasse o id automáticamente ele gravaria o Id_movimentação na chave estrangeira do banco. Realmente ele não fará isso, ou será que eu implementei alguma coisa errada. Segue meu código:
itensMovimentacaoLivro
@ManyToOne
@JoinColumn(name = "id_movimentacaoLivro")
private MovimentacaoLivro idmovimentacaoLivro;
MovimentacaoLivro
@OneToMany(mappedBy="idmovimentacaoLivro",cascade=CascadeType.ALL)
private List<ItensMovimentacaoLivro> itensMovimentacaoLivroList;
Estou com uma dúvida... Estou fazendo um relacionamento de Um para Muitos, entre duas tabelas: MovimentoLivro e ItensMovimentoLivro, sendo que em MovimentoLivro tenho um lista de ItensMovimentoLivro. No entanto, como coloquei o Id do MovimentoLivro para ser criado pelo banco, ao gravar o movimentoLivro eu insero a lista de ItensMovimentacaoLivro, e ao gravar no banco estou com o seguinte problema:
Na tabela itensMovimentacaoLivro tenho o id_Movimentacao_livro que é um referencia à classe MovimentacaoLivro, porém tal campo é gravado null. No método que gravo os dados quando mando gravar envio sem o ID (para que o banco grave), porém pensei que implementando a notação @OneToMany usando cascade quando o banco de dados gerasse o id automáticamente ele gravaria o Id_movimentação na chave estrangeira do banco. Realmente ele não fará isso, ou será que eu implementei alguma coisa errada. Segue meu código:
itensMovimentacaoLivro
@ManyToOne
@JoinColumn(name = "id_movimentacaoLivro")
private MovimentacaoLivro idmovimentacaoLivro;
MovimentacaoLivro
@OneToMany(mappedBy="idmovimentacaoLivro",cascade=CascadeType.ALL)
private List<ItensMovimentacaoLivro> itensMovimentacaoLivroList;
[há +1 mês] -
Responder
[autor]
Dyego Souza Do Carmo
Chegou usar o NetBeans para gerar as entidades lendo seu banco ? Ele faz isso e vc descobre na hora o problema ;D
[há +1 mês] -
Responder
Você está em:
canal Java
Este post faz parte de:
Curso(s):
Desvendando o JPA
Formações:
Formação Java web Developer
Curso(s):
Formações:
Dyego Souza Do Carmo
Space do autor
Engenheiro da Computação e evangelista da tecnologia Java , a mais de 15 anos especialista no sistema operacional linux. Programador Java a 8 anos sendo especialista em desenvolvimento de aplicações Java EE utilizando objetos distribuidos e Swing.
Consultoria em Dúvidas - Http://www.forHelp.Us
Space do autor

download

2
0
