我是使用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`)
)
方案
(插入)首先当用户订购 3个项目时。使用 bill_number 1 (bill_number为自动增量)在 order_headers 表格中创建一行,然后在 order_details 表格中使用 order_number 1创建一行(order_number为自动增量),然后将 items_ordered 中的所有 3项插入 order_number 1 表。
(更新和插入)现在,同一位用户订购了 2件,其中 bill_number ,现在更新继续 order_headers 要更新subtotal
,VAT
,grand_total
的表格 bill_number 1 ,然后在 order_details 表格中插入流程 order_number 2 (order_number为自动递增)帐单编号与 1 相同,然后在 items_ordered 2项 >表格 order_number 2 。
我知道one to one
,many to one
和one to many
(有两个表没问题,如果遇到这样的三个表,则无法获得如何使用)。< / p>
请任何人建议我,哪个Hibernate映射过程最适合此过程以及如何使用它。