我是Hibernate的新手,并要求使用具有这些列的表的数据库
表:TBL _ product//库存项目列表< br >列:< br > key _ product < br > key _ category < br > fld _ product _ name < br > fld _ Inventory _ qty < br > fld _ unit _ price < br > fld _ product _ image < br >
表: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
我的模型(对象)看起来像这样:
模型:库存项目
字段:
产品产品产品
型号: 产品
领域:
int 产品密钥;
字符串名称;
类别类别;
大十进制单位价格;
字符串产品图像;
模型:购物车项目
字段:
产品产品产品
我面临的问题是如何将表映射到相应的模型。我已经看到我可以使用@Embedded和@Embeddable,但由于我不能修改数据库的限制,这似乎很难做到。任何帮助都将不胜感激。非常感谢。
请尝试以下操作。
更新时间:
表的映射: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映射,从这里开始
是的,当然这是可能的,这正是Hibernate的用途。从EE教程中Java持久化API部分开始Java。这将向您展示如何将实体映射到数据库表以及如何查询它们。
http://docs.oracle.com/javaee/6/tutorial/doc/bnbpy.html
我有生成Hibernate实体的mysql db,现在我需要从这些实体生成内存数据库进行测试。我在试图运行我的单元测试时遇到了这个错误。 /***主]o.h.发动机。jdbc。spi。SqlExceptionHelper:SQL错误:42102,SQLState:42S02 2016-02-16 18:10:47.864错误29758---[main]o.h.engine。jdbc。spi。Sql
我有一个使用JPA的Spring Boot应用程序,它有两个数据源,一个用于DB2,一个用于SQL Server。 当我尝试将实体保存到SQL Server时,不会抛出任何错误,但该实体不会持久化到数据库。我看不到日志中正在生成插入。 提前感谢 下面是我尝试保存实体所执行的代码@组成部分 下面是sql Server配置。 这是SQL Server存储库 公共接口BeercupMessageLogR
问题内容: 如果我的实体具有已计算字段,应在保存到数据库(db 或)之前进行更新,如何在Hibernate或Spring Data Repository之前挂接方法调用 问题答案: 我认为最好的选择是使用和注释,为实体侦听器创建配置,然后您将可以访问要保存的每个实例,每次尝试使用以下方法持久化或更新内容时都会调用此方法hibernate或spring数据存储库 您只需要在实体bean上方添加注释
我正在尝试开发一个小型电子商务项目。我有一个篮子和篮子项目实体。我只是想当我为客户保存购物篮时,我想把购物篮项目保存在数据库中。我认为我不应该为篮子项目创建存储库。我应该能够保存篮子项目,同时使用篮子存储库保存篮子。 在这里,我试图通过篮子服务获得一个篮子项目,并将其设置为篮子实体并保存它。 我有什么问题?我有个例外。
我有一个实体CandidateTransaction和CandidateTransactionRepository扩展了CrudRepository 我正在使用CrudRepository的save方法来保存所述实体的对象。当实体没有行时,它将创建一个自动生成的键并将其插入ID列,而不需要Java端的干预。 而且,由于CrudRepository的save()方法检查实体是否是新的,如果是新的,它
我有一个问题,Spring数据没有保存实体。应用程序逻辑如下: 另一个应用程序正在监听负载相当重的Kafka主题(每秒数十条消息)并将消息插入数据库中具有“NEW”状态的表中。 @调度方法加载一个具有“NEW”状态的实体列表,这些实体被一个接一个地传输到FixedThreadPool(20个线程),它们的状态设置为“PROCESSING”和一个saveAll方法调用同一个表。 这两种日志方法都显示