Versão atual:

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)

Versões(2):

Ver a versão formatada

Dúvidas Hibernate com Annotation

Comentário

new question