hibernate 实现继承的三种方式

本文介绍了Hibernate中处理继承关系的三种方式:1)每个类对应一个表,使用同一个id;2)整个类层次映射到单个表;3)每个子类单独映射为表。通常在SSH框架中,首选方式是第一种,因为它完全遵循面向对象思想,尽管可能带来查询时的效率问题。详细配置示例和优缺点分析帮助理解不同策略的适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、继承关系中每个类都映射成一个数据库表,基类和子类共用一个id来标识。这样相当于父类和每个子类都对应自己单独的表结构。
   优点就是完全符合面向对象思想,缺点是查询子类要级联查询多个表,效率低。

配置文件例子:


2、将整个类层次映射为单个数据库表。即所有的类都在一个数据库表中存储。
   很显然,这种方法的缺点是浪费存储空间,每条数据都会有null的字段存在,优点就是增删查改的效率比较高。


3、将每个子类分别映射成数据库表,基类不参与映射。
   优点是操作的单个表,效率高。缺点是修改基类的时候每个子类的数据库表都要修改,不支持多态查询。

 

现在常用的javaEE的ssh开发框架中,一般都采用第一种方法,完全面向对象的思想,易于理解开发维护。

很详细的例子:http://www.ibm.com/developerworks/cn/java/j-hibernate/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值