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

Hibernate之映射继承关系(四) (5)

发布时间:2005.09.19 17:26     来源:赛迪网    作者:孙卫琴

Hibernate把EMPLOYEES表与HE表以及SE表进行左外连接,从而获得HourlyEmployee对象和SalariedEmployee对象的所有属性值。在这种映射方式下,Hibernate支持多态查询,对于以上查询语句获得的查询结果,如果HE表的EMPLOYEE_ID字段不为null,就创建HoulyEmployee实例,如果SE表的EMPLOYEE_ID字段不为null,就创建SalariedEmployee实例,这些实例所关联的Company对象也被加载。 (3)运行loadCompany()方法,它的代码如下:

tx = session.beginTransaction();
Company company=(Company)session.load(Company.class,new Long(id));
Hibernate.initialize(company.getEmployees());
tx.commit();

这种映射方式支持多态关联。如果在Company.hbm.xml文件中对employees集合设置了立即检索策略,那么Session的load()方法加载的Company对象的employees集合中包含所有关联的Employee对象。由于本书提供的Company.hbm.xml文件对employees集合设置了延迟检索策略,因此以上程序代码还通过Hibernate类的静态initialize()方法来显式初始化employees集合。

(4)运行saveEmployee(Employee employee)方法,它的代码如下:

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

在test()方法中,创建了一个HourlyEmployee实例,然后调用saveEmployee()方法保存这个实例:

Employee employee=new HourlyEmployee("Mary",300,company);
saveEmployee(employee);

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

insert into EMPLOYEES (ID,NAME, COMPANY_ID) values (5, 'Mary', 1);
insert into HOURLY_EMPLOYEES (EMPLOYEE_ID ,RATE) values (5, 300);

可见,每保存一个HourlyEmployee对象,需要分别向EMPLOYEES表和HE表插入一条记录,EMPLOYEES表的记录和HE表的记录共享同一个主键。

(T117)

<<上一页 1 2 3 4 5


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 弹指十年 Java创始人称Java时代刚刚开始 (09-19) · 播种菜园之一 Java几个常见错误简析 (09-16)
· Java和JSP编程中应该注意的几个常见问题 (09-16) · 仔细触摸Java编程中的“文档”和“包” (09-16)
· Java初学者入门——IO包的学习引导文章 (09-16) · Java初学者入门需掌握的30个基本概念 (09-16)
· 常见的十四种Java开发工具及其特点 (09-16) · 精通Hibernate之映射继承关系(二) (09-15)
· Hibernate之映射继承关系(三) (09-15) · Java网络编程之URI、URL的详细介绍(下) (09-15)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 移动信息化市场方兴未艾 企业呼唤标准出台
· 如何把握企业价值差异 避免CRM与SCM脱节
· 齐看四大厂商的SaaS动态 ERP案例分析
· 通方期货CRM解决方案 方正电子公文系统
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统