夜光序言:
我的心不是24小时营业的餐厅 没有随时的欢迎光临

正文:
复杂继承映射
方式1:整个继承结构一张表
特点:
所有的子类都写到一个映射文件中
用一张表存储所有的子类信息
| <subclass name="Cat" discriminator-value="cat_"> <property name="catching"></property> </subclass> |
总结:
生成的表,不符合数据库设计原则
因为所有子类都用一张表存储,存在很大的冗余字段
方式2:三张表
特点:
完全按照面向对象设计表结构
| <joined-subclass name="Cat" table="t_cat"> <key column="id"></key> <property name="catching"></property> </joined-subclass> |
总结:
设计的表,是符合数据库设计原则(三大范式)
但是,表结构、关系变得负责,影响数据访问效率
方式3:每个子类用一张表
特点:
一个映射文件
有多少个子类对应多少个表,父类不对应表
| <!-- 夜光:注意:使用union-subclass要求主键不能自增长 --> <!-- 子类:猫 --> <union-subclass name="Cat" table="t_cat"> <property name="catching"></property> </union-subclass> |
夜光总结:
推荐使用
注意:主键不能为自增长,这一点很重要~~
3. cascade 级联操作
cascade 表示级联操作,在一对多、多对一、一对一种都可以设置
save-update 级联保存或更新
delete 级联删除
save-update,delete 级联保存、更新、删除
all 同上
none 不级联(默认值)
未完成:
hibernate查询:
二级缓存/连接池支持
Hibernate对session管理(案例)
4. hibernate查询
Hibernate提供的查询:
1)主键查询
get/load
2) 对象导航方式
3) HQL查询
Hibernate提供的面向对象的查询方式
本文原文地址:https://blog.youkuaiyun.com/weixin_41987706/article/details/89305757
ORM映射与级联操作
探讨了ORM中复杂继承的三种映射方式,包括单表、三表和每子类一表策略的特点及适用场景,并解析了Hibernate的级联操作如save-update和delete的应用。
463

被折叠的 条评论
为什么被折叠?



