我是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 quantity;型号:产品
领域:
int productKey;
字符串名称;
类别类别;
BigDecimal unitPrice;
String productImage;
型号:购物车项目
领域:
产品;
int quantity;
我遇到了如何使用相应模型映射表的问题。 我已经看到我可以使用@Embedded和@Embeddable,但由于我无法修改的限制 数据库,似乎很难这样做。 任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
是的,当然有可能,这正是Hibernate所使用的。从Java EE教程的Java Persistence API开始。这将向您展示如何将实体映射到数据库表以及如何查询它们。
答案 1 :(得分:0)
请尝试以下方法。
<强>更新强>
表格的映射: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;
}
答案 2 :(得分:0)
您也可以使用xml映射,启动here