[英]Hibernate - Entity - Database Saving
我是Hibernate的新手,並被要求使用具有這些列的表的數據庫
表格:tbl_product //庫存項目清單
列:
key_product
key_category
fld_product_name
fld_inventory_qty
fld_unit_price
fld_product_image表:tbl_order_detail //購物車列:
key_order_detail
key_order(對tbl_order.key_order的引用)
key_product(對tbl_product.key_product的引用)
fld_unit_price
fld_quantity表tbl_order //購物車和用戶的數據透視表-含購物車總價
列:
key_order
key_user
fld_total_amount
我的模型(對象)如下所示:
型號:InventoryItem
領域:
產品產品;
整數數量型號:產品
領域:
int productKey;
字符串名稱;
類別類別;
BigDecimal單價;
字符串productImage;型號:購物車項目
領域:
產品產品;
整數數量
我面臨着如何用相應模型映射表的問題。 我已經看到可以使用@Embedded和@Embeddable,但是由於不能修改數據庫的限制,這樣做似乎很困難。 任何幫助將不勝感激。 謝謝!
是的,當然有可能,這正是Hibernate的用途。 從Java EE教程的Java Persistence API部分開始。 這將向您展示如何將實體映射到數據庫表以及如何查詢它們。
請嘗試以下。
更新:
映射表:tbl_product
@Entity
@Table(name="tbl_product")
public class Product {
@Id
@Column(name = "key_product")
private int productKey;
@Column(name = "fld_product_name")
private String name;
@Column(name = "fld_product_name")
private BigDecimal unitPrice;
@Column(name = "fld_product_image")
private String productImage;
@OneToOne(mappedBy="product")
private InventoryItem inventoryItem;
}
@Entity
@Table(name="tbl_product")
public class InventoryItem {
@Id
@Column(name = "key_product")
private int productKey;
@Column(name = "fld_inventory_qty")
private int quantity;
@OneToOne
@PrimaryKeyJoinColumn
private Product product;
}
映射tbl_order將是
@Entity
@Table(name="tbl_order")
public class ShoppingCartItem {
@Id
@Column(name="key_order")
private int keyOrder;
@Column(name="fld_total_amount")
private BigDecimal totalAmount;
//I guess this is a foreign key for User entity. I hope you can map it by yourself
@Column(name="key_user")
private int keyUser;
@OneToOne(mappedBy="shoppingCartItem")
private ShoppingCartItemDetails shoppingCartDetails;
}
表tbl_order_detail的映射為
@Entity
@Table(name="tbl_order_detail")
public class ShoppingCartItemDetails {
@Id
@Column(name="key_order_detail")
private int keyOrderDetail;
@Column(name="key_order", insertable=false, updatable=false)
private int keyOrder;
@OneToOne
//@JoinColumn used to map foreign key with primary key
@JoinColumn(name="key_order", referencedColumnName="key_order")
private ShoppingCartItem shoppingCartItem;
@Column(name="key_product", insertable=false, updatable=false)
private int keyProduct;
@OneToOne
@JoinColumn(name="key_product", referencedColumnName="key_product")
private Product product;
@Column(name="fld_unit_price")
private BigDecimal unitPrice;
@Column(name="fld_quantity")
private int quantity;
}
您也可以使用xml映射,從這里開始
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.