接続する必要がある 3 つのテーブルを取得しました。
新しいフレームワークを学びながら、自分でデータベースを作成している最初のプロジェクトを手に入れました。これは、DB に関してはそれほどうまくいかないため、ちょっと混乱する可能性があります。
Spring 3.1.0.RELEASE と Hibernate 3.6.8.Final を使用しています
ここで達成しようとしていることの一般的な考え方を示すために、ここで最も重要な属性に名前を付けます。
インベントリ(id、アイテム名...)
Line_Items (WORKSHOP_ORDERS_Id、INVENTORY_Id、数量)
Workshop_Order (ID、WorkshopService、WorkshopNotes...)
このようにして、注文ごとに複数のアイテムを持つことができれば、すべての注文で異なる製品ごとに 1 つの Line_Items を保持し、FK によって正しい注文にリンクすることができます。
私は注釈でさまざまなことを試しました.persistence.xmlは機能します.これはコード内で問題がある唯一の場所です. 私はこの関係を注釈にマッピングする方法について 100% 無知なので、コードをここに投稿します。
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name = "LINE_ITEMS")
public class LineItems implements Serializable {
private static final long serialVersionUID = 2414994088922470197L;
public Long workshopOrderId;
public Long inventoryId;
public int quantity;
public Workshop workshop;
public Inventory inventory;
@OneToMany(mappedBy = "workshop",cascade = CascadeType.ALL)
@JoinColumn(name="WORKSHOP_ORDERS_Id", insertable = false, updatable = false, nullable = false)
public Workshop getWorkshop() {
return workshop;
}
@OneToMany(mappedBy = "inventory", cascade = CascadeType.ALL)
@JoinColumn(name="INVENTORY_Id", insertable = false, updatable = false, nullable = false)
public Inventory getInventory() {
return inventory;
}
public void setWorkshop(Workshop workshop) {
this.workshop = workshop;
}
public void setInventory(Inventory inventory) {
this.inventory = inventory;
}
@Id
@Column(name = "WORKSHOP_ORDERS_Id")
public Long getWorkshopOrderId() {
return workshopOrderId;
}
@Id
@Column(name = "INVENTORY_Id")
public Long getInventoryId() {
return inventoryId;
}
@Column(name = "Quantity")
public int getQuantity() {
return quantity;
}
public void setWorkshopOrderId(Long workshopOrderId) {
this.workshopOrderId = workshopOrderId;
}
public void setInventoryId(Long inventoryId) {
this.inventoryId = inventoryId;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
}
Hibernate のバグについての話を聞いたことがありますが、これが私の問題に関連しているかどうかはわかりません。
基本的に私が必要としているのは、問題の完全な解決策ではなく、私が何をしていて、それを修正するために何をすべきかについての考えです。スマートなデータベース設計 (私が示したテーブルと、Hibernate でそれを行う正しい方法に関して) の両方で、いくつかの支援が必要です。
アドバイスやヘルプをいただければ幸いです。