1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Dúvidas Hibernate com Annotation

Sou iniciante com hibernate estou fazendo um exercício e mim surgiu uma dúvida no mapeamento

eu tenho a classe

package com.livro.capitulo3.cliente;

import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
import com.livro.capitulo3.endereco.Endereco;
import com.livro.capitulo3.locacao.Locacao;


@Entity
@Table(name = "cliente")
public class Cliente implements Serializable {    


private static final long serialVersionUID = -1028162372873307236L;

    @Id
    @GeneratedValue
    @Column(name = "cod_cliente")
    private Integer cliente;

    @OneToOne
    @PrimaryKeyJoinColumn(name = "cod_cliente")
    private Endereco endereco;

    @OneToMany(mappedBy = "cliente")
    private List<Locacao> locacoes;

    @Column(name = "nome")
    private String nome;

    @Column
    private String telefone;

    @Column
    private String email;

    @Column(name = "celular")
    private String celular;

    //getters e setters
        //iquals e hashcode

}

ESTOU FAZENDO UM PROJETO DE UMA LOCADORA DE FILMES.

Nessa classe a Tabela cliente se relaciona com endereco e Locacao;

cliente e endereco é relacionameto de 1-1, um cliente so pode ter um endereço e um endereço so pode pertencer a um cliente.. A tabela endereço tem a chave estrangeira da tabela cliente(cod_cliente).

cliente e locacao tem relacionamento de 1-*, um cliente pode fazer varias locações, é várias locações pode ser feito por um cliente. A tabela locacao leva a chave estrangeira do cliente

Até ai tudo bem, o probelma é que eu não estou entendendo o mapeamento:

@OneToMany(mappedBy = "cliente")
    private List<Locacao> locacoes;

Oque é esse mappedBy ="cliente" porque ele é feito na classe cliente e nao locacao?, pelo oque eu entendi clinte nao possui chave estrangeira(tabela forte) mas locacao possui a chave estrangeira de cliente(tabela fraca)

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java-ee ou faça a sua própria pergunta.