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

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

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

14.3.2 操纵持久化对象

这种映射方式支持多态查询,对于以下查询语句:













List employees=session.find("from Employee");

Hibernate会检索出所有的HourlyEmployee对象和SalariedEmployee对象。此外,也可以单独查询Employee类的两个子类的实例,例如:

List hourlyEmployees=session.find("from HourlyEmployee");

本节的范例程序位于配套光盘的sourcecode\chapter14\14.3目录下,运行该程序前,需要在SAMPLEDB数据库中手工创建COMPANIES表、EMPLOYEES表、HE表和SE表,然后加入测试数据,相关的SQL脚本文件为\14.3\schema\sampledb.sql。

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

ant  -file  build3.xml  run

就会运行BusinessService类。BusinessService的main()方法调用test()方法,test()方法依次调用以下方法:

findAllHourlyEmployees():检索数据库中所有的HourlyEmployee对象。
 	findAllEmployees():检索数据库中所有的Employee对象。
 	loadCompany():加载一个Company对象。
 	saveEmployee():保存一个Employee对象。

(1)运行findAllHourlyEmployees()方法,它的代码如下:

tx = session.beginTransaction();
List results=session.find("from HourlyEmployee");
tx.commit();
return results;
在运行Session的find()方法时,Hibernate执行以下select语句:
select * from HOURLY_EMPLOYEES he inner join EMPLOYEES e 
on he.EMPLOYEE_ID=e.ID;
select * from COMPANIES where ID=1;

Hibernate通过HE表与EMPLOYEES表的内连接获得HourlyEmployee对象的所有属性值,此外,在加载HourlyEmployee对象时,还会同时加载与它关联的Company对象。

(2)运行findAllEmployees()方法,它的代码如下:

tx = session.beginTransaction();
List results=session.find("from Employee");
tx.commit();
return results;
在运行Session的find()方法时,Hibernate执行以下select语句:
select * from EMPLOYEES e
left outer join HOURLY_EMPLOYEES he on e.ID=he.EMPLOYEE_ID
left outer join SALARIED_EMPLOYEES se on e.ID=se.EMPLOYEE_ID;
select * from COMPANIES where ID=1;

<<上一页 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技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 电子商务盈利新招:垂直化渠道管理新趋势
· 互联网加速蜕变 运营商进军搅动市场格局
· 08 IT技术风起云涌 专访 ITIL落地难在哪
· 视频加密保护解决方案 文档安全解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统