我需要连接 3 个表。
我的第一个项目是我自己制作数据库,同时学习一个新的框架,这可能有点令人困惑,因为当涉及到数据库时,我并不是那么好。
我正在使用 Spring 3.1.0.RELEASE 和 Hibernate 3.6.8.Final
我将在这里命名最重要的属性,以大致了解我在这里想要实现的目标。
库存(id、ItemName...)
Line_Items(WORKSHOP_ORDERS_Id、INVENTORY_Id、数量)
Workshop_Order (Id, WorkshopService, WorkshopNotes...)
这样,我希望每个订单有多个商品,计划为每个订单中的每个不同产品保留一个 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 中执行此操作的正确方法)。
任何建议或帮助将不胜感激。