hibernate的继承映射(InheritanceMapping)

hibernate的继承映射(InheritanceMapping)

ID:39549167

大小:17.58 KB

页数:8页

时间:2019-07-06

hibernate的继承映射(InheritanceMapping)_第1页
hibernate的继承映射(InheritanceMapping)_第2页
hibernate的继承映射(InheritanceMapping)_第3页
hibernate的继承映射(InheritanceMapping)_第4页
hibernate的继承映射(InheritanceMapping)_第5页
资源描述:

《hibernate的继承映射(InheritanceMapping)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、继承映射(InheritanceMapping)10.1.三种策略10.1.1.每个类分层结构一张表(Tableperclasshierarchy)10.1.2.每个子类一张表(Tablepersubclass)10.1.3.每个子类一张表(Tablepersubclass),使用辨别标志(Discriminator)10.1.4.混合使用“每个类分层结构一张表”和“每个子类一张表”10.1.5.每个具体类一张表(Tableperconcreteclass)10.1.6.每个具体类一张表,使用隐式多态10.1.7.隐式多态和其他继承映射混合使用10.2

2、.限制10.1.三种策略Hibernate支持三种基本的继承映射策略:每个类分层结构一张表(tableperclasshierarchy)tablepersubclass每个具体类一张表(tableperconcreteclass)此外,Hibernate还支持第四种稍有不同的多态映射策略:隐式多态(implicitpolymorphism)对于同一个继承层次内的不同分支,可以采用不同的映射策略,然后用隐式多态来完成跨越整个层次的多态。但是在同一个根元素下,Hibernate不支持混合了元素

3、ass>和的映射。在同一个元素下,可以混合使用“每个类分层结构一张表”(tableperhierarchy)和“每个子类一张表”(tablepersubclass)这两种映射策略,这是通过结合元素来实现的(见后)。在多个映射文件中,可以直接在hibernate-mapping根下定义subclass,union-subclass和joined-subclass。也就是说,你可以仅加入一个新的映射文件来扩展类层次。你必须在subclass的映射中指明extends属性,给出一

4、个之前定义的超类的名字。注意,在以前,这一功能对映射文件的顺序有严格的要求,从Hibernate3开始,使用extends关键字的时侯,对映射文件的顺序不再有要求;但在每个映射文件里,超类必须在子类之前定义。10.1.1.每个类分层结构一张表(Tableper

5、classhierarchy)假设我们有接口Payment和它的几个实现类:CreditCardPayment,CashPayment和ChequePayment。则“每个类分层结构一张表”(Tableperclasshierarchy)的映射代码如下所示:

6、"string"/>.........

7、inator-value="CHEQUE">...采用这种策略只需要一张表即可。它有一个很大的限制:要求那些由子类定义的字段,如CCTYPE,不能有非空(NOTNULL)约束。10.1.2.每个子类一张表(Tablepersubclass)对于上例中的几个类而言,采用“每个子类一张表”的映射策略,代码如下所示:

8、>..

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。