赛迪网 > IT技术 Java > Java读书频道-上
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Hibernate之映射继承关系(五) (3)

发布时间:2005.09.20 16:41     来源:赛迪网    作者:孙卫琴

在ClassA.hbm.xml文件中,在用于映射ClassD的元素中还嵌入了两个元素,它们分别映射ClassG和ClassH类。在以及所有的元素中都设置了discriminator-value属性,Hibernate根据discriminator-value属性来判断TABLE_A表中的记录对应哪个类的实例,如果 TABLE_A表的一条记录的A_TYPE字段取值为"A",表明它是ClassA类的实例,如果A_TYPE字段取值为"G",表明它是ClassG类的实例,依次类推。

值得注意的是,在元素中只能嵌入子元素,但不能嵌入子元素,而在元素中只能嵌入子元素,但不能嵌入< subclass>子元素。

本节的范例程序位于配套光盘的sourcecode\chapter14\14.4目录下,运行该程序前,需要在SAMPLEDB数据库中手工创建TABLE_A表、TABLE_B表、TABLE_E表和TABLE_F表,相关的SQL脚本文件为\14.4\schema\sampledb.sql。

在DOS命令行下进入chapter14根目录,然后输入命令:

ant  -file  build4.xml  run

就会运行BusinessService类。BusinessService的main()方法调用test()方法,test()方法调用saveDO(DOClass Object)方法,它负责保存一个DOClass对象,saveDO()方法的代码如下:

tx = session.beginTransaction();
session.save(object);
tx.commit();

在test()方法中,创建了一个ClassG类的实例和一个ClassF类的实例,然后调用saveDO()方法分别保存这两个实例:

ClassG g=new ClassG("a1","d1","g1");
saveDO(g);
 
ClassF f=new ClassF("b1","f1","f2","f3","f4","f5","f6","f7");
saveDO(f);

Session的save()方法能判断object变量实际引用的实例的类型,如果object变量引用ClassG类的实例,就执行如下insert语句:

insert into TABLE_A (ID,A1,D1,G1,A_TYPE) values (1, 'a1', 'd1', 'g1','G');

如果object变量引用ClassF类的实例,就执行如下insert语句:

insert into TABLE_B (ID,B1) values (1, 'b1');
insert into TABLE_F (B_ID ,F1, F2, F3, F4, F5, F6) values (1, 'f1', 'f2', 'f3', 
'f4', 'f5', 'f6', 'f7');

(T117)

<<上一页 1 2 3


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Java框架研究——JSF与Struts的异同 (09-20) · Java初学者入门需掌握的30个基本概念 (09-20)
· Java 能否畅行未来? (09-20) · 在Eclipse 3.1中体验J2SE 5.0新特性三 (09-20)
· Hibernate之映射继承关系(四) (09-19) · 弹指十年 Java创始人称Java时代刚刚开始 (09-19)
· 播种菜园之一 Java几个常见错误简析 (09-16) · Java和JSP编程中应该注意的几个常见问题 (09-16)
· 仔细触摸Java编程中的“文档”和“包” (09-16) · Java初学者入门——IO包的学习引导文章 (09-16)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· IT治理撞入“死胡同”的七大诱因 应如何避开
· 互联网零售业酝酿新物种 零售基因信息化变异
· ERP案例分析 SaaS带来冲击 IT服务商面临挑战
· 通方期货CRM解决方案 房地产行业CRM解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统