SORU
6 NİSAN 2010, Salı


Çift yönlü JPA bir OneToMany/tarafından " kastedilen Derneği;dernek ters tarafa" ManyToOne;?

TopLink JPA Annotation Reference: Bu örneklerde

Örnek 1-59 @OneToMany - Jenerik İle Müşteri Sınıfı

@Entity
public class Customer implements Serializable {
    ...
    @OneToMany(cascade=ALL, mappedBy="customer")
    public Set<Order> getOrders() { 
        return orders; 
    }
    ...
}

Jenerik İle Örnek 1-60 @ManyToOne - Sipariş Sınıfı

@Entity
public class Order implements Serializable {
    ...
    @ManyToOne
    @JoinColumn(name="CUST_ID", nullable=false)
    public Customer getCustomer() { 
        return customer; 
    }
    ...
}

Customer varlık Birliği sahibi gibi geliyor bana. Ancak, aynı belge içinde mappedBy öznitelik açıklama, şöyle yazılmıştır:

eğer ilişki iki yönlü ise, sonra mappedBy elemanı seti (non-sahibi) ters tarafı alan adının Derneği ya da özelliği bu ilişki sahibi Örnek olarak 1-60 gösterir.

Eğer yanılıyorsam değil ancak, sigara içilmez sahibi olan tarafı yerine örnekte, mappedBy aslında derneğin sahibi tarafında belirtilen gibi görünüyor.

Benim soru temelde şu:

  1. (Bir-çok-çok tek/çift yönlü) bir kurumda, hangi şirketlerin sahibi? Nasıl sahibi olarak Bir tarafı tayin edebilir miyiz? Nasıl sahibi olarak Birçok yan atayabilir miyiz?

  2. Ne anlama geldiğini "derneğin ters tarafı"? Nasıl ters Bir tarafı tayin edebilir miyiz? Nasıl ters olarak Birçok yan atayabilir miyiz?

CEVAP
6 NİSAN 2010, Salı


Bunu anlamak için bir adım geri almak gerekir. OO, müşteri siparişleri (siparişler müşteri nesne bir listesi var) var. Bir müşteri olmadan bir emir olamaz. Müşteri siparişleri sahibi gibi görünüyor.

Ama SQL dünyada, bir öğe aslında başka bir işaretçi içerir. N siparişler için 1 müşteri olmadığı için, her bir siparişin ait olduğu müşteri için yabancı anahtar içerir. Bu "düzen" "(ya da tam anlamıyla içerir) bağlantı (bilgi) sahibi." anlamına gelir bağlantı. Bu tam olarak OO/model dünyanın tersidir.

Bunu anlamak için yardımcı olabilir:

public class Customer {
     // This field doesn't exist in the database
     // It is simulated with a SQL query
     // "OO speak": Customer owns the orders
     private List<Order> orders;
}

public class Order {
     // This field actually exists in the DB
     // In a purely OO model, we could omit it
     // "DB speak": Order contains a foreign key to customer
     private Customer customer;
}

Ters tarafı"," bu dava, müşteri nesnenin,. sahibi OO. Müşteri emirleri saklamak için tabloda bir sütun var, sipariş tabloda bu verileri mappedBy) olur) kaydedebilirsiniz nerede olduğunu söylemelisin.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kylelandry

    kylelandry

    9 AĞUSTOS 2007
  • midomansour

    midomansour

    19 EYLÜL 2009
  • SlimaksClass

    SlimaksClass

    15 Kasım 2010