您所在位置: 网站首页 / 文档列表 / Java / 文档详情
详解Enterprise JavaBeans查询语言之二.doc 立即下载
上传人:yy****24 上传时间:2024-09-05 格式:DOC 页数:13 大小:85KB 金币:18 举报 版权申诉
预览加载中,请您耐心等待几秒...

详解Enterprise JavaBeans查询语言之二.doc

详解EnterpriseJavaBeans查询语言之二.doc

预览

免费试读已结束,剩余 3 页请下载文档后查看

18 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

详解EnterpriseJavaBeans查询语言之二标识变量一个标识变量就是在FROM子句中声明的一个标识符。尽管SELECT子句和WHERE子句中可以引用标识变量,但是不可以声明它。所有的标识变量都只能在FROM子句中声明。因为一个标识变量就是一个标识符,所以它与标识符具有同样的命名约定和约束。例如,一个标识变量是对大小写不敏感的,它不可以与一个EJBQL关键字相同。(更多的命名规则请参见上一段。)同样,在一个给定的EJBJAR文件中,一个标识命名也不能与任何entitybean的命名或抽象模式名重复。FROM子句可以包含用逗号隔开的多个声明。一个声明可以引用另一个在前面(左边)已经声明的标识变量。在下面的FROM子句中,变量t引用了之前声明的变量p:FROMPlayerp,IN(p.teams)ASt即使一个标识变量没有在WHERE子句中引用,它的声明也可以影响到查询的结果。我们可以来比较下面的两个查询。下面的查询返回所有的队员,不论他们是否属于一个运动队:SELECTOBJECT(p)FROMPlayerp与此相反,因为下一个查询声明了t标识变量,它可以获得属于一个运动队的所有队员:SELECTOBJECT(p)FROMPlayerp,IN(p.teams)ASt下面的查询返回了与上一个查询相同的结果,但是WHERE子句的存在使得这个查询更容易理解:SELECTOBJECT(p)FROMPlayerpWHEREp.teamsISNOTEMPTY一个标识变量总是指向一个单独的值,它的类型是声明中使用的表达式。有两个类型的声明:范围变量和集合成员。范围变量声明要将一个标识变量声明为一个抽象模式类型,你必须指定一个范围变量申明。换句话说,一个标识变量可以包括一个entitybean的抽象模式类型。在下面的例子中,一个名为p的标识变量表示了一个名为Player的抽象模式:FROMPlayerp一个范围变量声明可以包括可选的AS操作符:FROMPlayerASp在绝大多数情况下,为了获得对象,查询会使用路径表达式以跨越关联关系。但是对于那些不能通过跨越获得的对象,你可以使用一个范围变量声明以指定一个起点(或root)。如果查询对同一抽象模式名的多个值进行比较,那么FROM子句需要为这个抽象模式声明多个标识变量:FROMPlayerp1,Playerp2集合成员声明在一个一对多的关联关系中,多端由一个entitybean的集合组成。一个标识变量可以反映这个集合中的一个成员。要访问一个集合成员,变量声明中的路径表达式将跨越抽象模式中的关联关系。(在下面我们将详细介绍路径表达式。)因为一个路径表达式可以基于另一个路径表达式,所以可以实现对几个关联关系的跨越。一个集合成员声明必须包含IN操作符,不过它可以省略可选的AS操作符。在下面的例子中,抽象模式名为Player的entitybean有一个名为teams的关联字段。名为t的标识变量代表了teams集合中的一个成员。FROMPlayerp,IN(p.teams)ASt路径表达式从几个方面说,路径表达式都是EJBQL语法中的重要的构造。首先,它们定义了在抽象模式的关联关系中的跨越路径。这些路径的定义既影响查询的范围,也影响查询的结果。其次,它们可以在一个EJBQL查询的三个子句(SELECT、WHERE和FROM)的任何一个中出现。最后,尽管EJBQL中的很大部分都是SQL的子集,但是路径表达式却不是SQL中所具有的。语法有两种类型的路径表达式:single-valued和collection-valued。下面是路径表达式的语法:single_valued_path_expression::={single_valued_navigation|identification_variable}.cmp_field|single_valued_navigationsingle_valued_navigation::=identification_variable.[single_valued_cmr_field.]*single_valued_cmr_fieldcollection_valued_path_expression::=identification_variable.[single_valued_cmr_field.]*collection_valued_cmr_field在前面的语法结构中,cmp_field元素表示了一个持续化字段,而cmr_field元素表示了一个关联字段。术语single_valued限制关联字段只能是一对一关系或一对多关系中“一”端;反之,术语collection_valued限制关联
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

详解Enterprise JavaBeans查询语言之二

文档大小:85KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用