2016-10-24 14 views
0

を受信、私はこの注文は関係

enter image description here

のような関係のモデルを持っているアイデアは、部分的な順序を受信することが可能である、つまり、受信同程度の複数のエントリを持つことになります。一方、オーダーは同じReceiveの複数のエントリを持ちます。明確な理解のために

enter image description here

データを簡単に保存することができ、この画像を参照してください。しかし、Receiveの詳細(例えばReceive -1)を表示しようとすると、受け取った数量を注文の特定のアイテムに対して表示することはできません。他のすべての情報は正しく表示されます。要するに、データはReceive Detailsで非常にきれいに保存されますが、正しく取り出すことはできません。

このモデルで何が問題なのか、解決策を教えてください。

ありがとうございます。

答えて

0

最初の図は、お客様のReceive-1/Receive-2テーブルとご注文Itemテーブルの関係を示していません。あなたの2番目の図が関連する項目を明確に述べているので、これが監視であるかどうかはわかりません。

私がこれをモデル化していたなら、おそらくデータモデルの小さな変更を選ぶでしょう。

@Entity 
public class Receipt { 
    @ManyToOne 
    private Order order; 

    @OneToMany(mappedBy = "receipt") 
    private List<ReceiptItem> entries; 
} 

@Entity 
public class ReceiptItem { 
    @ManyToOne 
    private Receipt receipt; 

    @ManyToOne 
    private Item item; 
} 

@Entity 
public class Item { 
    @OneToMany(mappedBy = "item") 
    private List<ReceiptItem> receipts; 
} 

ここに大きな重要な要因は、ItemReceiptItem両方がReceiptItemが所有している双方向の関係を、維持することです。

この関係では、Receiptとそれに関連付けられたReceiptItem行を表示し、Itemに関する任意の関連情報を含めることができます。また、Orderと適切なItem行をアイテムの領収書に関する関連情報とともにレンダリングすることもできます。

関連する問題