Java Hibernate-实体-数据库保存
我不熟悉Hibernate,被要求使用具有这些列的表的数据库 表:tbl_产品//库存项目清单Java Hibernate-实体-数据库保存,java,mysql,hibernate,Java,Mysql,Hibernate,我不熟悉Hibernate,被要求使用具有这些列的表的数据库 表:tbl_产品//库存项目清单 柱: 关键产品 钥匙类别 fld_产品名称 fld_库存_数量 fld\U单价 fld_产品_图像 表:待定订单详情//购物车 列: 键\顺序\详细信息 钥匙顺序(参考tbl\U顺序。钥匙顺序) 密钥产品(参考tbl\U产品。密钥产品) fld\U单价 fld_数量 表tbl\U订单//购物车和用户透视表——购物车总价 列: 钥匙顺序 密钥用户 贷款总额 我的模型(对象)如下所示: 型号:Invent
柱:
关键产品
钥匙类别
fld_产品名称
fld_库存_数量
fld\U单价
fld_产品_图像
表:待定订单详情//购物车 列:
键\顺序\详细信息
钥匙顺序(参考tbl\U顺序。钥匙顺序)
密钥产品(参考tbl\U产品。密钥产品)
fld\U单价
fld_数量
表tbl\U订单//购物车和用户透视表——购物车总价
列:
钥匙顺序
密钥用户
贷款总额
我的模型(对象)如下所示: 型号:InventoryItem
字段:
产品
整数 型号:产品
字段:
int-productKey
字符串名
类别
大十进制单价
字符串图像
型号:购物车项目
字段:
产品
整数 我面临的问题是如何用相应的模型映射表。 我已经看到我可以使用@Embedded和@embeddeble,但是由于我不能修改的限制 在数据库中,似乎很难做到这一点。
任何帮助都将不胜感激。谢谢大家! 是的,当然有可能,这正是Hibernate的用途。从JavaEE教程的JavaPersistenceAPI部分开始。这将向您展示如何将实体映射到数据库表以及如何查询它们 请尝试下面的方法 更新: 表的映射:tbl_产品
@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_订单的映射为
@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映射,开始我看到的这个问题是,我有另一个名为ShoppingCartItem的实体,它也将引用产品。ShoppingCartItem的表格类似于key_order、key_product(参考tbl_product中的产品)、fld_unit_price、fld_quantity。如果您可以使用所有表格更新您的问题,我将尝试给出完整的映射。我看不出为什么要将tbl_产品拆分为实体类:InventoryItem&product。我只会使用一个类,因为如果产品包含“数量”字段,那么一旦产品位于“购物车项目”ooo中,该字段将变得无用且没有意义。。。这有点复杂;我会更新我的答案。