0

J'ai 2 entités Client et adresse veuillez trouver le code ci-dessous, j'ai omis le code plaque de chaudière pour plus de simplicité.Je dois reporter la clé primaire de la table primaire à un champ de clé étrangère dans la table dépendante

public class Customer implements java.io.Serializable { 
    private static final long serialVersionUID = 3116894694769321104L; 
    private short customerId; 
    private Address address; 
    private String firstName; 
    private String lastName; 
    private String email; 
    private boolean active; 
    private Date createDate; 
    private Date lastUpdate; 


    // Property accessors 
    @Id 
    @Column(name="customer_id", unique=true, nullable=false, insertable=true, updatable=true) 

    public short getCustomerId() { 
     return this.customerId; 
    } 

    public void setCustomerId(short customerId) { 
     this.customerId = customerId; 
    } 
    @ManyToOne(cascade={CascadeType.ALL}, 
     fetch=FetchType.LAZY) 

     @JoinColumn(name="address_id", unique=false, nullable=false, insertable=true, updatable=true) 

    public Address getAddress() { 
     return this.address; 
    } 

    public void setAddress(Address address) { 
     this.address = address; 
    } 

et classe d'adresse est:

public class Address implements java.io.Serializable { 


    // Fields  

    private short addressId; 
    private short customerId; 
    private String address; 
    private String address2; 
    private String district; 
    private String postalCode; 
    private String phone; 
    private Date lastUpdate; 
    private Set<Customer> customers_1 = new HashSet<Customer>(0); 


    // Constructors 

    /** default constructor */ 
    public Address() { 
    } 

    // Property accessors 
    @Id 
    @Column(name="address_id", unique=true, nullable=false, insertable=true, updatable=true) 

    public short getAddressId() { 
     return this.addressId; 
    } 

    public void setAddressId(short addressId) { 
     this.addressId = addressId; 
    } 

    /** 
    * ??????what goes here 
    */ 
    public short getCustomerId() { 
     return customerId; 
    } 

    /** 
    * @param customerId the customerId to set 
    */ 
    public void setCustomerId(short customerId) { 
     this.customerId = customerId; 
    } 

Je dois conserver l'identifiant du client comme une clé étrangère dans la table d'adresses. Il suffit d'utiliser @ManyToOne relation avec Customer

Répondre

1

Ainsi, au lieu de customerId en code Java, vous utiliserez l'objet Customer, mais au niveau de la base de données, Hibernate utilisera la clé étrangère pour la table avec le client.

Questions connexes