如何使用Hibernate Java插入和更新三个MySQL表?

时间:2016-02-03 05:49:32

标签: java mysql hibernate

我是使用Hibernate进行Java服务器端编程的新手,如何使用hibernate一次插入和更新三个表。我正在开发一个应用程序,即在线食品订购系统。

订单标题表

CREATE TABLE `order_headers` (
  `merchant_code` int(10) DEFAULT '0',
  `customer_code` int(11) NOT NULL,
  `bill_number` int(10) NOT NULL AUTO_INCREMENT,
  `payment_type` varchar(20) DEFAULT NULL,
  `payment_status` varchar(30) DEFAULT NULL,
  `order_status` varchar(20) DEFAULT NULL,
  `order_date` date NOT NULL,
  `order_time` time NOT NULL,
  `sub_total` decimal(7,2) NOT NULL,
  `VAT` decimal(5,2) NOT NULL,
  `grand_total` decimal(7,2) NOT NULL,
  PRIMARY KEY (`bill_number`)
)

订单明细表

CREATE TABLE `order_details` (
  `merchant_code` int(10) NOT NULL DEFAULT '0',
  `customer_code` int(11) NOT NULL,
  `bill_number` int(11) NOT NULL,
  `order_number` int(10) NOT NULL AUTO_INCREMENT,
   PRIMARY KEY (`order_number`)
)

项目明细表

CREATE TABLE `items_ordered` (
  `items_ordered_id` int(10) NOT NULL AUTO_INCREMENT,
  `merchant_code` int(10) NOT NULL DEFAULT '0',
  `customer_code` int(11) NOT NULL,
  `order_number` int(10) NOT NULL DEFAULT '0',
  `product_code` int(10) NOT NULL DEFAULT '0',
  `product_short_desc` varchar(80) NOT NULL DEFAULT '0',
  `custom_instructions` varchar(100) NOT NULL DEFAULT '',
  `quantity` int(3) NOT NULL DEFAULT '0',
  `price` decimal(8,2) NOT NULL DEFAULT '0.00',
  `value` decimal(7,2) NOT NULL DEFAULT '0.00',
   PRIMARY KEY (`items_ordered_id`)
)

方案

  1. (插入)首先当用户订购 3个项目时。使用 bill_number 1 (bill_number为自动增量)在 order_headers 表格中创建一行,然后在 order_details 表格中使用 order_number 1创建一行(order_number为自动增量),然后将 items_ordered 中的所有 3项插入 order_number 1 表。

  2. (更新和插入)现在,同一位用户订购了 2件,其中 bill_number ,现在更新继续 order_headers 要更新subtotalVATgrand_total的表格 bill_number 1 ,然后在 order_details 表格中插入流程 order_number 2 (order_number为自动递增)帐单编号与 1 相同,然后在 items_ordered 2项 >表格 order_number 2

  3. 我知道one to onemany to oneone to many(有两个表没问题,如果遇到这样的三个表,则无法获得如何使用)。< / p>

    请任何人建议我,哪个Hibernate映射过程最适合此过程以及如何使用它。

0 个答案:

没有答案