Java Hibernate-实体-数据库保存

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

我不熟悉Hibernate,被要求使用具有这些列的表的数据库

表:tbl_产品//库存项目清单
柱:
关键产品
钥匙类别
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中,该字段将变得无用且没有意义。。。这有点复杂;我会更新我的答案。