1.HQL多表查询的基础
hibernate两表查询
EMP(员工表) 和 DEPT(部门表)
多对一 :相对于员工,对个员工对应一个部门
一对多:相对于部门,一个部门对应对个员工
EMP 多方
DEPT 一方
one方 : bag/set 要指定外键
one-to-many class必须写 写多方类名 有外键的方 写 many-to-one 无外键的方加 one-to-many
多方: many-to-one column="外键" class="one 方类名"
一般情况下由多方维护关联关系
在one方的映射文件的bag标签添加inverse="true 意思是让多方维护(因为反转给了对方)
inverse 默认值是false
inverse: 倒数反选颠倒的相反
级联操作:可以在多方和one同时添加,一般在one方进行
级联添加: 在新增部门的同时新增相应的员工
级联删除:在删除部门的同时级联删除该部门下的所有员工
one方:bag标签添加cascade(级联)属性 save delete all(save +delete)
在删除one方的同时级联删除其下的所有多方对象
直接删除one方 (先查后删)
通过one方删除多方对象 cascade:delete-orphan
bag: all-delete-orphan : save delete delete-orphan
通过部门删除员工
例如:删除部门下的某个员工 (部门保留)