hibernate的关联关系
前言
在真实的项目中级联删除是被禁用的,因为级联的关系,就是会把和它有点关系的都会删除
一、什么是关联
关联(association)指是类之间的引用关系,如果类A与类B关联,那么被引用的类B将被定义为类A的属性
二、关联的分类
①一对一
②一对多
③多对一
④多对多
三、创建两张表,生动的来体现一下关联关系
-- 订单表(主表)
create table t_order_hb
(
order_id int primary key auto_increment,
order_no varchar(50) not null
);
-- 订单项表(从表)
create table t_order_item_hb
(
order_item_id int primary key auto_increment,
product_id int not null,
quantity int not null,
oid int not null,
foreign key(oid) references t_order_hb(order_id)
);
四、每一张表对应一个实体类,一个实体类对应一个xml文件
order表为主表,orderItem为从表
所以主表中要比从表的xml文件里多了一些关系连接
order
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!--
name:实体类的全路径名
table:实体类对应的数据表名称
-->
<class name="com.lishengnan.entity.Order" table="t_order_hb">
<!--
id:用于设置数据库表结构中主键列的生产方法
name:实体类中属性类型
type:java中的数据类型
column:数据库字段名称
-->
<id name="order_id" type="java.lang.Integer" column="order_id">
<!--
class:定义主键列生成的方式:hibernate管理、数据库管理、开发者管理
(increment identity sequence natine assgine)
-->
<generator class="increment"></generator>
<